mirror of
https://github.com/git/git.git
synced 2026-04-01 20:40:08 +02:00
Merge branch 'master' of git://repo.or.cz/alt-git
This commit is contained in:
@@ -240,7 +240,7 @@ $(MAN_HTML): %.html : %.txt
|
||||
mv $@+ $@
|
||||
|
||||
user-manual.xml: user-manual.txt user-manual.conf
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b docbook -d book $<
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book $<
|
||||
|
||||
technical/api-index.txt: technical/api-index-skel.txt \
|
||||
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
|
||||
@@ -293,13 +293,13 @@ howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
|
||||
mv $@+ $@
|
||||
|
||||
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b xhtml11 $*.txt
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 $*.txt
|
||||
|
||||
WEBDOC_DEST = /pub/software/scm/git/docs
|
||||
|
||||
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
sed -e '1,/^$$/d' $< | $(ASCIIDOC) -b xhtml11 - >$@+ && \
|
||||
sed -e '1,/^$$/d' $< | $(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 - >$@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
install-webdoc : html
|
||||
|
||||
@@ -4,15 +4,40 @@ GIT v1.6.1.4 Release Notes
|
||||
Fixes since v1.6.1.3
|
||||
--------------------
|
||||
|
||||
* .gitignore learned to handle backslash as a quoting mechanism for
|
||||
comment introduction character "#".
|
||||
This fix was first merged to 1.6.2.1.
|
||||
|
||||
* "git fast-export" produced wrong output with some parents missing from
|
||||
commits, when the history is clock-skewed.
|
||||
|
||||
* "git fast-import" sometimes failed to read back objects it just wrote
|
||||
out and aborted, because it failed to flush stale cached data.
|
||||
|
||||
* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when
|
||||
deciding to descend into a subdirectory but they did not match the
|
||||
individual paths correctly. This caused pathspecs "abc/d ab" to match
|
||||
"abc/0" ("abc/d" made them decide to descend into the directory "abc/",
|
||||
and then "ab" incorrectly matched "abc/0" when it shouldn't).
|
||||
This fix was first merged to 1.6.2.3.
|
||||
|
||||
* import-zips script (in contrib) did not compute the common directory
|
||||
prefix correctly.
|
||||
This fix was first merged to 1.6.2.2.
|
||||
|
||||
* "git init" segfaulted when given an overlong template location via
|
||||
the --template= option.
|
||||
This fix was first merged to 1.6.2.4.
|
||||
|
||||
* "git repack" did not error out when necessary object was missing in the
|
||||
repository.
|
||||
|
||||
* git-repack (invoked from git-gc) did not work as nicely as it should in
|
||||
a repository that borrows objects from neighbours via alternates
|
||||
mechanism especially when some packs are marked with the ".keep" flag
|
||||
to prevent them from being repacked.
|
||||
This fix was first merged to 1.6.2.3.
|
||||
|
||||
Also includes minor documentation fixes and updates.
|
||||
|
||||
--
|
||||
|
||||
21
Documentation/RelNotes-1.6.2.5.txt
Normal file
21
Documentation/RelNotes-1.6.2.5.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
GIT v1.6.2.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.4
|
||||
--------------------
|
||||
|
||||
* "git apply" mishandled if you fed a git generated patch that renames
|
||||
file A to B and file B to A at the same time.
|
||||
|
||||
* "git diff -c -p" (and "diff --cc") did not expect to see submodule
|
||||
differences and instead refused to work.
|
||||
|
||||
* "git grep -e '('" segfaulted, instead of diagnosing a mismatched
|
||||
parentheses error.
|
||||
|
||||
* "git fetch" generated packs with offset-delta encoding when both ends of
|
||||
the connection are capable of producing one; this cannot be read by
|
||||
ancient git and the user should be able to disable this by setting
|
||||
repack.usedeltabaseoffset configuration to false.
|
||||
|
||||
|
||||
@@ -37,6 +37,12 @@ Updates since v1.6.2
|
||||
|
||||
* various git-svn updates.
|
||||
|
||||
* git-gui updates, including an update to Russian translation, and a
|
||||
fix to an infinite loop when showing an empty diff.
|
||||
|
||||
* gitk updates, including an update to Russian translation and improved Windows
|
||||
support.
|
||||
|
||||
(performance)
|
||||
|
||||
* many uses of lstat(2) in the codepath for "git checkout" have been
|
||||
|
||||
@@ -6,9 +6,13 @@ Checklist (and a short version for the impatient):
|
||||
- check for unnecessary whitespace with "git diff --check"
|
||||
before committing
|
||||
- do not check in commented out code or unneeded files
|
||||
- provide a meaningful commit message
|
||||
- the first line of the commit message should be a short
|
||||
description and should skip the full stop
|
||||
- the body should provide a meaningful commit message, which:
|
||||
- uses the imperative, present tense: "change",
|
||||
not "changed" or "changes".
|
||||
- includes motivation for the change, and contrasts
|
||||
its implementation with previous behaviour
|
||||
- if you want your work included in git.git, add a
|
||||
"Signed-off-by: Your Name <you@example.com>" line to the
|
||||
commit message (or just use the option "-s" when
|
||||
@@ -62,6 +66,14 @@ Describe the technical detail of the change(s).
|
||||
|
||||
If your description starts to get too long, that's a sign that you
|
||||
probably need to split up your commit to finer grained pieces.
|
||||
That being said, patches which plainly describe the things that
|
||||
help reviewers check the patch, and future maintainers understand
|
||||
the code, are the most beautiful patches. Descriptions that summarise
|
||||
the point in the subject well, and describe the motivation for the
|
||||
change, the approach taken by the change, and if relevant how this
|
||||
differs substantially from the prior version, can be found on Usenet
|
||||
archives back into the late 80's. Consider it like good Netiquette,
|
||||
but for code.
|
||||
|
||||
Oh, another thing. I am picky about whitespaces. Make sure your
|
||||
changes do not trigger errors with the sample pre-commit hook shipped
|
||||
|
||||
@@ -429,10 +429,14 @@ relatively high IO latencies. With this set to 'true', git will do the
|
||||
index comparison to the filesystem data in parallel, allowing
|
||||
overlapping IO's.
|
||||
|
||||
core.unreliableHardlinks::
|
||||
Some filesystem drivers cannot properly handle hardlinking a file
|
||||
and deleting the source right away. In such a case, you need to
|
||||
set this config variable to 'true'.
|
||||
core.createObject::
|
||||
You can set this to 'link', in which case a hardlink followed by
|
||||
a delete of the source are used to make sure that object creation
|
||||
will not overwrite existing objects.
|
||||
+
|
||||
On some file system/operating system combinations, this is unreliable.
|
||||
Set this config setting to 'rename' there; However, This will remove the
|
||||
check that makes sure that existing object files will not get overwritten.
|
||||
|
||||
alias.*::
|
||||
Command aliases for the linkgit:git[1] command wrapper - e.g.
|
||||
|
||||
@@ -26,7 +26,7 @@ OPTIONS
|
||||
--parseopt::
|
||||
Use 'git-rev-parse' in option parsing mode (see PARSEOPT section below).
|
||||
|
||||
--keep-dash-dash::
|
||||
--keep-dashdash::
|
||||
Only meaningful in `--parseopt` mode. Tells the option parser to echo
|
||||
out the first `--` met instead of skipping it.
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ where options is the bitwise-or of:
|
||||
|
||||
Make sure there is a work tree, i.e. the command cannot act
|
||||
on bare repositories.
|
||||
This makes only sense when `RUN_SETUP` is also set.
|
||||
This only makes sense when `RUN_SETUP` is also set.
|
||||
|
||||
. Add `builtin-foo.o` to `BUILTIN_OBJS` in `Makefile`.
|
||||
|
||||
|
||||
19
Makefile
19
Makefile
@@ -172,8 +172,8 @@ all::
|
||||
# information on a not yet closed file that lstat would return for the same
|
||||
# file after it was closed.
|
||||
#
|
||||
# Define UNRELIABLE_HARDLINKS if your operating systems has problems when
|
||||
# hardlinking a file to another name and unlinking the original file right
|
||||
# Define OBJECT_CREATION_USES_RENAMES if your operating systems has problems
|
||||
# when hardlinking a file to another name and unlinking the original file right
|
||||
# away (some NTFS drivers seem to zero the contents in that scenario).
|
||||
|
||||
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
|
||||
@@ -366,9 +366,6 @@ ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
|
||||
|
||||
# what 'all' will build but not install in gitexecdir
|
||||
OTHER_PROGRAMS = git$X
|
||||
ifndef NO_PERL
|
||||
OTHER_PROGRAMS += gitweb/gitweb.cgi
|
||||
endif
|
||||
|
||||
# Set paths to tools early so that they can be used for version tests.
|
||||
ifndef SHELL_PATH
|
||||
@@ -765,6 +762,7 @@ ifeq ($(uname_S),NetBSD)
|
||||
BASIC_CFLAGS += -I/usr/pkg/include
|
||||
BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
|
||||
THREADED_DELTA_SEARCH = YesPlease
|
||||
USE_ST_TIMESPEC = YesPlease
|
||||
endif
|
||||
ifeq ($(uname_S),AIX)
|
||||
NO_STRCASESTR=YesPlease
|
||||
@@ -841,7 +839,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
|
||||
NO_NSEC = YesPlease
|
||||
USE_WIN32_MMAP = YesPlease
|
||||
UNRELIABLE_FSTAT = UnfortunatelyYes
|
||||
UNRELIABLE_HARDLINKS = UnfortunatelySometimes
|
||||
OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo
|
||||
COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/regex -Icompat/fnmatch
|
||||
COMPAT_CFLAGS += -DSNPRINTF_SIZE_CORR=1
|
||||
COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
|
||||
@@ -1025,8 +1023,8 @@ else
|
||||
COMPAT_OBJS += compat/win32mmap.o
|
||||
endif
|
||||
endif
|
||||
ifdef UNRELIABLE_HARDLINKS
|
||||
COMPAT_CFLAGS += -DUNRELIABLE_HARDLINKS=1
|
||||
ifdef OBJECT_CREATION_USES_RENAMES
|
||||
COMPAT_CFLAGS += -DOBJECT_CREATION_MODE=1
|
||||
endif
|
||||
ifdef NO_PREAD
|
||||
COMPAT_CFLAGS += -DNO_PREAD
|
||||
@@ -1281,6 +1279,7 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
|
||||
chmod +x $@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
OTHER_PROGRAMS += gitweb/gitweb.cgi
|
||||
gitweb/gitweb.cgi: gitweb/gitweb.perl
|
||||
$(QUIET_GEN)$(RM) $@ $@+ && \
|
||||
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
|
||||
@@ -1547,7 +1546,7 @@ ifndef NO_TCLTK
|
||||
$(MAKE) -C git-gui gitexecdir='$(gitexec_instdir_SQ)' install
|
||||
endif
|
||||
ifneq (,$X)
|
||||
$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), $(RM) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p';)
|
||||
$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p' -ef '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p$X' || $(RM) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p';)
|
||||
endif
|
||||
bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
|
||||
execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
|
||||
@@ -1559,7 +1558,7 @@ endif
|
||||
ln "$$execdir/git-add$X" "$$execdir/$$p" 2>/dev/null || \
|
||||
ln -s "git-add$X" "$$execdir/$$p" 2>/dev/null || \
|
||||
cp "$$execdir/git-add$X" "$$execdir/$$p" || exit; \
|
||||
done } && \
|
||||
done; } && \
|
||||
./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
|
||||
|
||||
install-doc:
|
||||
|
||||
4
alias.c
4
alias.c
@@ -27,7 +27,7 @@ int split_cmdline(char *cmdline, const char ***argv)
|
||||
int src, dst, count = 0, size = 16;
|
||||
char quoted = 0;
|
||||
|
||||
*argv = xmalloc(sizeof(char*) * size);
|
||||
*argv = xmalloc(sizeof(char *) * size);
|
||||
|
||||
/* split alias_string */
|
||||
(*argv)[count++] = cmdline;
|
||||
@@ -40,7 +40,7 @@ int split_cmdline(char *cmdline, const char ***argv)
|
||||
; /* skip */
|
||||
if (count >= size) {
|
||||
size += 16;
|
||||
*argv = xrealloc(*argv, sizeof(char*) * size);
|
||||
*argv = xrealloc(*argv, sizeof(char *) * size);
|
||||
}
|
||||
(*argv)[count++] = cmdline + dst;
|
||||
} else if (!quoted && (c == '\'' || c == '"')) {
|
||||
|
||||
2
alloc.c
2
alloc.c
@@ -57,7 +57,7 @@ DEFINE_ALLOCATOR(object, union any_object)
|
||||
#define SZ_FMT "%zu"
|
||||
#endif
|
||||
|
||||
static void report(const char* name, unsigned int count, size_t size)
|
||||
static void report(const char *name, unsigned int count, size_t size)
|
||||
{
|
||||
fprintf(stderr, "%10s: %8u (" SZ_FMT " kB)\n", name, count, size);
|
||||
}
|
||||
|
||||
4
attr.c
4
attr.c
@@ -224,7 +224,7 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
|
||||
if (is_macro)
|
||||
res->u.attr = git_attr(name, namelen);
|
||||
else {
|
||||
res->u.pattern = (char*)&(res->state[num_attr]);
|
||||
res->u.pattern = (char *)&(res->state[num_attr]);
|
||||
memcpy(res->u.pattern, name, namelen);
|
||||
res->u.pattern[namelen] = 0;
|
||||
}
|
||||
@@ -275,7 +275,7 @@ static void free_attr_elem(struct attr_stack *e)
|
||||
setto == ATTR__UNKNOWN)
|
||||
;
|
||||
else
|
||||
free((char*) setto);
|
||||
free((char *) setto);
|
||||
}
|
||||
free(a);
|
||||
}
|
||||
|
||||
@@ -873,7 +873,7 @@ static void find_copy_in_blob(struct scoreboard *sb,
|
||||
* Prepare mmfile that contains only the lines in ent.
|
||||
*/
|
||||
cp = nth_line(sb, ent->lno);
|
||||
file_o.ptr = (char*) cp;
|
||||
file_o.ptr = (char *) cp;
|
||||
cnt = ent->num_lines;
|
||||
|
||||
while (cnt && cp < sb->final_buf + sb->final_buf_size) {
|
||||
@@ -1704,7 +1704,7 @@ static int prepare_lines(struct scoreboard *sb)
|
||||
while (len--) {
|
||||
if (bol) {
|
||||
sb->lineno = xrealloc(sb->lineno,
|
||||
sizeof(int* ) * (num + 1));
|
||||
sizeof(int *) * (num + 1));
|
||||
sb->lineno[num] = buf - sb->final_buf;
|
||||
bol = 0;
|
||||
}
|
||||
@@ -1714,7 +1714,7 @@ static int prepare_lines(struct scoreboard *sb)
|
||||
}
|
||||
}
|
||||
sb->lineno = xrealloc(sb->lineno,
|
||||
sizeof(int* ) * (num + incomplete + 1));
|
||||
sizeof(int *) * (num + incomplete + 1));
|
||||
sb->lineno[num + incomplete] = buf - sb->final_buf;
|
||||
sb->num_lines = num + incomplete;
|
||||
return sb->num_lines;
|
||||
@@ -1889,7 +1889,7 @@ static const char *parse_loc(const char *spec,
|
||||
return spec;
|
||||
|
||||
/* it could be a regexp of form /.../ */
|
||||
for (term = (char*) spec + 1; *term && *term != '/'; term++) {
|
||||
for (term = (char *) spec + 1; *term && *term != '/'; term++) {
|
||||
if (*term == '\\')
|
||||
term++;
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ static int checkout_file(const char *name, int prefix_length)
|
||||
static void checkout_all(const char *prefix, int prefix_length)
|
||||
{
|
||||
int i, errs = 0;
|
||||
struct cache_entry* last_ce = NULL;
|
||||
struct cache_entry *last_ce = NULL;
|
||||
|
||||
for (i = 0; i < active_nr ; i++) {
|
||||
struct cache_entry *ce = active_cache[i];
|
||||
@@ -278,7 +278,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
|
||||
p = prefix_path(prefix, prefix_length, arg);
|
||||
checkout_file(p, prefix_length);
|
||||
if (p < arg || p > arg + strlen(arg))
|
||||
free((char*)p);
|
||||
free((char *)p);
|
||||
}
|
||||
|
||||
if (read_from_stdin) {
|
||||
|
||||
@@ -390,6 +390,8 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
|
||||
}
|
||||
else if (actions == ACTION_EDIT) {
|
||||
check_argc(argc, 0, 0);
|
||||
if (!config_exclusive_filename && nongit)
|
||||
die("not in a git directory");
|
||||
git_config(git_default_config, NULL);
|
||||
launch_editor(config_exclusive_filename ?
|
||||
config_exclusive_filename : git_path("config"),
|
||||
|
||||
@@ -334,7 +334,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
|
||||
die("--long is incompatible with --abbrev=0");
|
||||
|
||||
if (contains) {
|
||||
const char **args = xmalloc((7 + argc) * sizeof(char*));
|
||||
const char **args = xmalloc((7 + argc) * sizeof(char *));
|
||||
int i = 0;
|
||||
args[i++] = "name-rev";
|
||||
args[i++] = "--name-only";
|
||||
@@ -349,7 +349,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
|
||||
args[i++] = s;
|
||||
}
|
||||
}
|
||||
memcpy(args + i, argv, argc * sizeof(char*));
|
||||
memcpy(args + i, argv, argc * sizeof(char *));
|
||||
args[i + argc] = NULL;
|
||||
return cmd_name_rev(i + argc, args, prefix);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
static int transfer_unpack_limit = -1;
|
||||
static int fetch_unpack_limit = -1;
|
||||
static int unpack_limit = 100;
|
||||
static int prefer_ofs_delta = 1;
|
||||
static struct fetch_pack_args args = {
|
||||
/* .uploadpack = */ "git-upload-pack",
|
||||
};
|
||||
@@ -111,7 +112,7 @@ static void mark_common(struct commit *commit,
|
||||
Get the next rev to send, ignoring the common.
|
||||
*/
|
||||
|
||||
static const unsigned char* get_rev(void)
|
||||
static const unsigned char *get_rev(void)
|
||||
{
|
||||
struct commit *commit = NULL;
|
||||
|
||||
@@ -200,7 +201,7 @@ static int find_common(int fd[2], unsigned char *result_sha1,
|
||||
(args.use_thin_pack ? " thin-pack" : ""),
|
||||
(args.no_progress ? " no-progress" : ""),
|
||||
(args.include_tag ? " include-tag" : ""),
|
||||
" ofs-delta");
|
||||
(prefer_ofs_delta ? " ofs-delta" : ""));
|
||||
else
|
||||
packet_write(fd[1], "want %s\n", sha1_to_hex(remote));
|
||||
fetching++;
|
||||
@@ -596,6 +597,11 @@ static struct ref *do_fetch_pack(int fd[2],
|
||||
fprintf(stderr, "Server supports side-band\n");
|
||||
use_sideband = 1;
|
||||
}
|
||||
if (server_supports("ofs-delta")) {
|
||||
if (args.verbose)
|
||||
fprintf(stderr, "Server supports ofs-delta\n");
|
||||
} else
|
||||
prefer_ofs_delta = 0;
|
||||
if (everything_local(&ref, nr_match, match)) {
|
||||
packet_flush(fd[1]);
|
||||
goto all_done;
|
||||
@@ -648,6 +654,11 @@ static int fetch_pack_config(const char *var, const char *value, void *cb)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(var, "repack.usedeltabaseoffset") == 0) {
|
||||
prefer_ofs_delta = git_config_bool(var, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return git_default_config(var, value, cb);
|
||||
}
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ static int check_emacsclient_version(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void exec_woman_emacs(const char* path, const char *page)
|
||||
static void exec_woman_emacs(const char *path, const char *page)
|
||||
{
|
||||
if (!check_emacsclient_version()) {
|
||||
/* This works only with emacsclient version >= 22. */
|
||||
@@ -128,7 +128,7 @@ static void exec_woman_emacs(const char* path, const char *page)
|
||||
}
|
||||
}
|
||||
|
||||
static void exec_man_konqueror(const char* path, const char *page)
|
||||
static void exec_man_konqueror(const char *path, const char *page)
|
||||
{
|
||||
const char *display = getenv("DISPLAY");
|
||||
if (display && *display) {
|
||||
@@ -156,7 +156,7 @@ static void exec_man_konqueror(const char* path, const char *page)
|
||||
}
|
||||
}
|
||||
|
||||
static void exec_man_man(const char* path, const char *page)
|
||||
static void exec_man_man(const char *path, const char *page)
|
||||
{
|
||||
if (!path)
|
||||
path = "man";
|
||||
|
||||
@@ -764,7 +764,7 @@ static int suggest_conflicts(void)
|
||||
|
||||
fp = fopen(git_path("MERGE_MSG"), "a");
|
||||
if (!fp)
|
||||
die("Could open %s for writing", git_path("MERGE_MSG"));
|
||||
die("Could not open %s for writing", git_path("MERGE_MSG"));
|
||||
fprintf(fp, "\nConflicts:\n");
|
||||
for (pos = 0; pos < active_nr; pos++) {
|
||||
struct cache_entry *ce = active_cache[pos];
|
||||
|
||||
@@ -55,6 +55,7 @@ void prune_packed_objects(int opts)
|
||||
for (i = 0; i < 256; i++) {
|
||||
DIR *d;
|
||||
|
||||
display_progress(progress, i + 1);
|
||||
sprintf(pathname + len, "%02x/", i);
|
||||
d = opendir(pathname);
|
||||
if (!d)
|
||||
|
||||
@@ -292,7 +292,7 @@ static void update_one(const char *path, const char *prefix, int prefix_length)
|
||||
report("add '%s'", path);
|
||||
free_return:
|
||||
if (p < path || p > path + strlen(path))
|
||||
free((char*)p);
|
||||
free((char *)p);
|
||||
}
|
||||
|
||||
static void read_index_info(int line_termination)
|
||||
@@ -509,7 +509,7 @@ static int do_unresolve(int ac, const char **av,
|
||||
const char *p = prefix_path(prefix, prefix_length, arg);
|
||||
err |= unresolve_one(p);
|
||||
if (p < arg || p > arg + strlen(arg))
|
||||
free((char*)p);
|
||||
free((char *)p);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
@@ -712,7 +712,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
if (set_executable_bit)
|
||||
chmod_path(set_executable_bit, p);
|
||||
if (p < path || p > path + strlen(path))
|
||||
free((char*)p);
|
||||
free((char *)p);
|
||||
}
|
||||
if (read_from_stdin) {
|
||||
struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;
|
||||
|
||||
9
cache.h
9
cache.h
@@ -554,7 +554,12 @@ extern enum branch_track git_branch_track;
|
||||
extern enum rebase_setup_type autorebase;
|
||||
extern enum push_default_type push_default;
|
||||
|
||||
extern int unreliable_hardlinks;
|
||||
enum object_creation_mode {
|
||||
OBJECT_CREATION_USES_HARDLINKS = 0,
|
||||
OBJECT_CREATION_USES_RENAMES = 1,
|
||||
};
|
||||
|
||||
extern enum object_creation_mode object_creation_mode;
|
||||
|
||||
#define GIT_REPO_VERSION 0
|
||||
extern int repository_format_version;
|
||||
@@ -841,7 +846,7 @@ extern struct packed_git *find_sha1_pack(const unsigned char *sha1,
|
||||
|
||||
extern void pack_report(void);
|
||||
extern int open_pack_index(struct packed_git *);
|
||||
extern unsigned char* use_pack(struct packed_git *, struct pack_window **, off_t, unsigned int *);
|
||||
extern unsigned char *use_pack(struct packed_git *, struct pack_window **, off_t, unsigned int *);
|
||||
extern void close_pack_windows(struct packed_git *);
|
||||
extern void unuse_pack(struct pack_window **);
|
||||
extern void free_pack_by_name(const char *);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "quote.h"
|
||||
#include "xdiff-interface.h"
|
||||
#include "log-tree.h"
|
||||
#include "refs.h"
|
||||
|
||||
static struct combine_diff_path *intersect_paths(struct combine_diff_path *curr, int n, int num_parent)
|
||||
{
|
||||
@@ -23,7 +24,7 @@ static struct combine_diff_path *intersect_paths(struct combine_diff_path *curr,
|
||||
path = q->queue[i]->two->path;
|
||||
len = strlen(path);
|
||||
p = xmalloc(combine_diff_path_size(num_parent, len));
|
||||
p->path = (char*) &(p->parent[num_parent]);
|
||||
p->path = (char *) &(p->parent[num_parent]);
|
||||
memcpy(p->path, path, len);
|
||||
p->path[len] = 0;
|
||||
p->len = len;
|
||||
@@ -90,18 +91,24 @@ struct sline {
|
||||
unsigned long *p_lno;
|
||||
};
|
||||
|
||||
static char *grab_blob(const unsigned char *sha1, unsigned long *size)
|
||||
static char *grab_blob(const unsigned char *sha1, unsigned int mode, unsigned long *size)
|
||||
{
|
||||
char *blob;
|
||||
enum object_type type;
|
||||
if (is_null_sha1(sha1)) {
|
||||
|
||||
if (S_ISGITLINK(mode)) {
|
||||
blob = xmalloc(100);
|
||||
*size = snprintf(blob, 100,
|
||||
"Subproject commit %s\n", sha1_to_hex(sha1));
|
||||
} else if (is_null_sha1(sha1)) {
|
||||
/* deleted blob */
|
||||
*size = 0;
|
||||
return xcalloc(1, 1);
|
||||
} else {
|
||||
blob = read_sha1_file(sha1, &type, size);
|
||||
if (type != OBJ_BLOB)
|
||||
die("object '%s' is not a blob!", sha1_to_hex(sha1));
|
||||
}
|
||||
blob = read_sha1_file(sha1, &type, size);
|
||||
if (type != OBJ_BLOB)
|
||||
die("object '%s' is not a blob!", sha1_to_hex(sha1));
|
||||
return blob;
|
||||
}
|
||||
|
||||
@@ -195,7 +202,8 @@ static void consume_line(void *state_, char *line, unsigned long len)
|
||||
}
|
||||
}
|
||||
|
||||
static void combine_diff(const unsigned char *parent, mmfile_t *result_file,
|
||||
static void combine_diff(const unsigned char *parent, unsigned int mode,
|
||||
mmfile_t *result_file,
|
||||
struct sline *sline, unsigned int cnt, int n,
|
||||
int num_parent)
|
||||
{
|
||||
@@ -211,7 +219,7 @@ static void combine_diff(const unsigned char *parent, mmfile_t *result_file,
|
||||
if (!cnt)
|
||||
return; /* result deleted */
|
||||
|
||||
parent_file.ptr = grab_blob(parent, &sz);
|
||||
parent_file.ptr = grab_blob(parent, mode, &sz);
|
||||
parent_file.size = sz;
|
||||
memset(&xpp, 0, sizeof(xpp));
|
||||
xpp.flags = XDF_NEED_MINIMAL;
|
||||
@@ -692,7 +700,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
||||
|
||||
/* Read the result of merge first */
|
||||
if (!working_tree_file)
|
||||
result = grab_blob(elem->sha1, &result_size);
|
||||
result = grab_blob(elem->sha1, elem->mode, &result_size);
|
||||
else {
|
||||
/* Used by diff-tree to read from the working tree */
|
||||
struct stat st;
|
||||
@@ -712,6 +720,12 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
||||
result_size = buf.len;
|
||||
result = strbuf_detach(&buf, NULL);
|
||||
elem->mode = canon_mode(st.st_mode);
|
||||
} else if (S_ISDIR(st.st_mode)) {
|
||||
unsigned char sha1[20];
|
||||
if (resolve_gitlink_ref(elem->path, "HEAD", sha1) < 0)
|
||||
result = grab_blob(elem->sha1, elem->mode, &result_size);
|
||||
else
|
||||
result = grab_blob(sha1, elem->mode, &result_size);
|
||||
} else if (0 <= (fd = open(elem->path, O_RDONLY))) {
|
||||
size_t len = xsize_t(st.st_size);
|
||||
ssize_t done;
|
||||
@@ -804,7 +818,9 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
||||
}
|
||||
}
|
||||
if (i <= j)
|
||||
combine_diff(elem->parent[i].sha1, &result_file, sline,
|
||||
combine_diff(elem->parent[i].sha1,
|
||||
elem->parent[i].mode,
|
||||
&result_file, sline,
|
||||
cnt, i, num_parent);
|
||||
if (elem->parent[i].mode != elem->mode)
|
||||
mode_differs = 1;
|
||||
@@ -1047,7 +1063,7 @@ void diff_tree_combined_merge(const unsigned char *sha1,
|
||||
for (parents = commit->parents, num_parent = 0;
|
||||
parents;
|
||||
parents = parents->next, num_parent++)
|
||||
hashcpy((unsigned char*)(parent + num_parent),
|
||||
hashcpy((unsigned char *)(parent + num_parent),
|
||||
parents->item->object.sha1);
|
||||
diff_tree_combined(sha1, parent, num_parent, dense, rev);
|
||||
}
|
||||
|
||||
@@ -562,7 +562,7 @@ static char **get_path_split(void)
|
||||
if (!n)
|
||||
return NULL;
|
||||
|
||||
path = xmalloc((n+1)*sizeof(char*));
|
||||
path = xmalloc((n+1)*sizeof(char *));
|
||||
p = envpath;
|
||||
i = 0;
|
||||
do {
|
||||
|
||||
41
config.c
41
config.c
@@ -495,8 +495,13 @@ static int git_default_core_config(const char *var, const char *value)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "core.unreliablehardlinks")) {
|
||||
unreliable_hardlinks = git_config_bool(var, value);
|
||||
if (!strcmp(var, "core.createobject")) {
|
||||
if (!strcmp(value, "rename"))
|
||||
object_creation_mode = OBJECT_CREATION_USES_RENAMES;
|
||||
else if (!strcmp(value, "link"))
|
||||
object_creation_mode = OBJECT_CREATION_USES_HARDLINKS;
|
||||
else
|
||||
die("Invalid mode for object creation: %s", value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -719,16 +724,16 @@ int git_config(config_fn_t fn, void *data)
|
||||
|
||||
static struct {
|
||||
int baselen;
|
||||
char* key;
|
||||
char *key;
|
||||
int do_not_match;
|
||||
regex_t* value_regex;
|
||||
regex_t *value_regex;
|
||||
int multi_replace;
|
||||
size_t offset[MAX_MATCHES];
|
||||
enum { START, SECTION_SEEN, SECTION_END_SEEN, KEY_SEEN } state;
|
||||
int seen;
|
||||
} store;
|
||||
|
||||
static int matches(const char* key, const char* value)
|
||||
static int matches(const char *key, const char *value)
|
||||
{
|
||||
return !strcmp(key, store.key) &&
|
||||
(store.value_regex == NULL ||
|
||||
@@ -736,7 +741,7 @@ static int matches(const char* key, const char* value)
|
||||
!regexec(store.value_regex, value, 0, NULL, 0)));
|
||||
}
|
||||
|
||||
static int store_aux(const char* key, const char* value, void *cb)
|
||||
static int store_aux(const char *key, const char *value, void *cb)
|
||||
{
|
||||
const char *ep;
|
||||
size_t section_len;
|
||||
@@ -805,7 +810,7 @@ static int write_error(const char *filename)
|
||||
return 4;
|
||||
}
|
||||
|
||||
static int store_write_section(int fd, const char* key)
|
||||
static int store_write_section(int fd, const char *key)
|
||||
{
|
||||
const char *dot;
|
||||
int i, success;
|
||||
@@ -830,7 +835,7 @@ static int store_write_section(int fd, const char* key)
|
||||
return success;
|
||||
}
|
||||
|
||||
static int store_write_pair(int fd, const char* key, const char* value)
|
||||
static int store_write_pair(int fd, const char *key, const char *value)
|
||||
{
|
||||
int i, success;
|
||||
int length = strlen(key + store.baselen + 1);
|
||||
@@ -878,8 +883,8 @@ static int store_write_pair(int fd, const char* key, const char* value)
|
||||
return success;
|
||||
}
|
||||
|
||||
static ssize_t find_beginning_of_line(const char* contents, size_t size,
|
||||
size_t offset_, int* found_bracket)
|
||||
static ssize_t find_beginning_of_line(const char *contents, size_t size,
|
||||
size_t offset_, int *found_bracket)
|
||||
{
|
||||
size_t equal_offset = size, bracket_offset = size;
|
||||
ssize_t offset;
|
||||
@@ -904,7 +909,7 @@ contline:
|
||||
return offset;
|
||||
}
|
||||
|
||||
int git_config_set(const char* key, const char* value)
|
||||
int git_config_set(const char *key, const char *value)
|
||||
{
|
||||
return git_config_set_multivar(key, value, NULL, 0);
|
||||
}
|
||||
@@ -932,15 +937,15 @@ int git_config_set(const char* key, const char* value)
|
||||
* - the config file is removed and the lock file rename()d to it.
|
||||
*
|
||||
*/
|
||||
int git_config_set_multivar(const char* key, const char* value,
|
||||
const char* value_regex, int multi_replace)
|
||||
int git_config_set_multivar(const char *key, const char *value,
|
||||
const char *value_regex, int multi_replace)
|
||||
{
|
||||
int i, dot;
|
||||
int fd = -1, in_fd;
|
||||
int ret;
|
||||
char* config_filename;
|
||||
char *config_filename;
|
||||
struct lock_file *lock = NULL;
|
||||
const char* last_dot = strrchr(key, '.');
|
||||
const char *last_dot = strrchr(key, '.');
|
||||
|
||||
if (config_exclusive_filename)
|
||||
config_filename = xstrdup(config_exclusive_filename);
|
||||
@@ -996,7 +1001,7 @@ int git_config_set_multivar(const char* key, const char* value,
|
||||
lock = xcalloc(sizeof(struct lock_file), 1);
|
||||
fd = hold_lock_file_for_update(lock, config_filename, 0);
|
||||
if (fd < 0) {
|
||||
error("could not lock config file %s", config_filename);
|
||||
error("could not lock config file %s: %s", config_filename, strerror(errno));
|
||||
free(store.key);
|
||||
ret = -1;
|
||||
goto out_free;
|
||||
@@ -1021,13 +1026,13 @@ int git_config_set_multivar(const char* key, const char* value,
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
store.key = (char*)key;
|
||||
store.key = (char *)key;
|
||||
if (!store_write_section(fd, key) ||
|
||||
!store_write_pair(fd, key, value))
|
||||
goto write_err_out;
|
||||
} else {
|
||||
struct stat st;
|
||||
char* contents;
|
||||
char *contents;
|
||||
size_t contents_sz, copy_begin, copy_end;
|
||||
int i, new_line = 0;
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ static void convert_ascii_sha1(void *buffer)
|
||||
struct entry *entry;
|
||||
|
||||
if (get_sha1_hex(buffer, sha1))
|
||||
die("expected sha1, got '%s'", (char*) buffer);
|
||||
die("expected sha1, got '%s'", (char *) buffer);
|
||||
entry = convert_entry(sha1);
|
||||
memcpy(buffer, sha1_to_hex(entry->new_sha1), 40);
|
||||
}
|
||||
@@ -100,7 +100,7 @@ static int write_subdirectory(void *buffer, unsigned long size, const char *base
|
||||
if (!slash) {
|
||||
newlen += sprintf(new + newlen, "%o %s", mode, path);
|
||||
new[newlen++] = '\0';
|
||||
hashcpy((unsigned char*)new + newlen, (unsigned char *) buffer + len - 20);
|
||||
hashcpy((unsigned char *)new + newlen, (unsigned char *) buffer + len - 20);
|
||||
newlen += 20;
|
||||
|
||||
used += len;
|
||||
@@ -271,7 +271,7 @@ static void convert_commit(void *buffer, unsigned long size, unsigned char *resu
|
||||
unsigned long orig_size = size;
|
||||
|
||||
if (memcmp(buffer, "tree ", 5))
|
||||
die("Bad commit '%s'", (char*) buffer);
|
||||
die("Bad commit '%s'", (char *) buffer);
|
||||
convert_ascii_sha1((char *) buffer + 5);
|
||||
buffer = (char *) buffer + 46; /* "tree " + "hex sha1" + "\n" */
|
||||
while (!memcmp(buffer, "parent ", 7)) {
|
||||
|
||||
2
ctype.c
2
ctype.c
@@ -10,7 +10,7 @@ enum {
|
||||
A = GIT_ALPHA,
|
||||
D = GIT_DIGIT,
|
||||
G = GIT_GLOB_SPECIAL, /* *, ?, [, \\ */
|
||||
R = GIT_REGEX_SPECIAL, /* $, (, ), +, ., ^, {, | * */
|
||||
R = GIT_REGEX_SPECIAL, /* $, (, ), +, ., ^, {, | */
|
||||
};
|
||||
|
||||
unsigned char sane_ctype[256] = {
|
||||
|
||||
26
daemon.c
26
daemon.c
@@ -444,27 +444,27 @@ static void parse_extra_args(char *extra_args, int buflen)
|
||||
if (hostname) {
|
||||
#ifndef NO_IPV6
|
||||
struct addrinfo hints;
|
||||
struct addrinfo *ai, *ai0;
|
||||
struct addrinfo *ai;
|
||||
int gai;
|
||||
static char addrbuf[HOST_NAME_MAX + 1];
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_flags = AI_CANONNAME;
|
||||
|
||||
gai = getaddrinfo(hostname, 0, &hints, &ai0);
|
||||
gai = getaddrinfo(hostname, 0, &hints, &ai);
|
||||
if (!gai) {
|
||||
for (ai = ai0; ai; ai = ai->ai_next) {
|
||||
struct sockaddr_in *sin_addr = (void *)ai->ai_addr;
|
||||
struct sockaddr_in *sin_addr = (void *)ai->ai_addr;
|
||||
|
||||
inet_ntop(AF_INET, &sin_addr->sin_addr,
|
||||
addrbuf, sizeof(addrbuf));
|
||||
free(canon_hostname);
|
||||
canon_hostname = xstrdup(ai->ai_canonname);
|
||||
free(ip_address);
|
||||
ip_address = xstrdup(addrbuf);
|
||||
break;
|
||||
}
|
||||
freeaddrinfo(ai0);
|
||||
inet_ntop(AF_INET, &sin_addr->sin_addr,
|
||||
addrbuf, sizeof(addrbuf));
|
||||
free(ip_address);
|
||||
ip_address = xstrdup(addrbuf);
|
||||
|
||||
free(canon_hostname);
|
||||
canon_hostname = xstrdup(ai->ai_canonname ?
|
||||
ai->ai_canonname : ip_address);
|
||||
|
||||
freeaddrinfo(ai);
|
||||
}
|
||||
#else
|
||||
struct hostent *hent;
|
||||
|
||||
@@ -233,7 +233,7 @@ void diff_no_index(struct rev_info *revs,
|
||||
if (prefix) {
|
||||
int len = strlen(prefix);
|
||||
|
||||
revs->diffopt.paths = xcalloc(2, sizeof(char*));
|
||||
revs->diffopt.paths = xcalloc(2, sizeof(char *));
|
||||
for (i = 0; i < 2; i++) {
|
||||
const char *p = argv[argc - 2 + i];
|
||||
/*
|
||||
|
||||
4
diff.c
4
diff.c
@@ -876,7 +876,7 @@ static void fill_print_name(struct diffstat_file *file)
|
||||
file->print_name = pname;
|
||||
}
|
||||
|
||||
static void show_stats(struct diffstat_t* data, struct diff_options *options)
|
||||
static void show_stats(struct diffstat_t *data, struct diff_options *options)
|
||||
{
|
||||
int i, len, add, del, adds = 0, dels = 0;
|
||||
int max_change = 0, max_len = 0;
|
||||
@@ -1025,7 +1025,7 @@ static void show_shortstats(struct diffstat_t* data, struct diff_options *option
|
||||
total_files, adds, dels);
|
||||
}
|
||||
|
||||
static void show_numstat(struct diffstat_t* data, struct diff_options *options)
|
||||
static void show_numstat(struct diffstat_t *data, struct diff_options *options)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
2
dir.c
2
dir.c
@@ -156,7 +156,7 @@ void add_exclude(const char *string, const char *base,
|
||||
if (len && string[len - 1] == '/') {
|
||||
char *s;
|
||||
x = xmalloc(sizeof(*x) + len);
|
||||
s = (char*)(x+1);
|
||||
s = (char *)(x+1);
|
||||
memcpy(s, string, len - 1);
|
||||
s[len - 1] = '\0';
|
||||
string = s;
|
||||
|
||||
@@ -43,10 +43,10 @@ unsigned whitespace_rule_cfg = WS_DEFAULT_RULE;
|
||||
enum branch_track git_branch_track = BRANCH_TRACK_REMOTE;
|
||||
enum rebase_setup_type autorebase = AUTOREBASE_NEVER;
|
||||
enum push_default_type push_default = PUSH_DEFAULT_UNSPECIFIED;
|
||||
#ifndef UNRELIABLE_HARDLINKS
|
||||
#define UNRELIABLE_HARDLINKS 0
|
||||
#ifndef OBJECT_CREATION_MODE
|
||||
#define OBJECT_CREATION_MODE OBJECT_CREATION_USES_HARDLINKS
|
||||
#endif
|
||||
int unreliable_hardlinks = UNRELIABLE_HARDLINKS;
|
||||
enum object_creation_mode object_creation_mode = OBJECT_CREATION_MODE;
|
||||
|
||||
/* Parallel index stat data preload? */
|
||||
int core_preload_index = 0;
|
||||
|
||||
@@ -212,7 +212,7 @@ struct tree_content;
|
||||
struct tree_entry
|
||||
{
|
||||
struct tree_content *tree;
|
||||
struct atom_str* name;
|
||||
struct atom_str *name;
|
||||
struct tree_entry_ms
|
||||
{
|
||||
uint16_t mode;
|
||||
@@ -313,7 +313,7 @@ static unsigned int object_entry_alloc = 5000;
|
||||
static struct object_entry_pool *blocks;
|
||||
static struct object_entry *object_table[1 << 16];
|
||||
static struct mark_set *marks;
|
||||
static const char* mark_file;
|
||||
static const char *mark_file;
|
||||
|
||||
/* Our last blob */
|
||||
static struct last_object last_blob = { STRBUF_INIT, 0, 0, 0 };
|
||||
@@ -672,7 +672,7 @@ static struct branch *lookup_branch(const char *name)
|
||||
static struct branch *new_branch(const char *name)
|
||||
{
|
||||
unsigned int hc = hc_str(name, strlen(name)) % branch_table_sz;
|
||||
struct branch* b = lookup_branch(name);
|
||||
struct branch *b = lookup_branch(name);
|
||||
|
||||
if (b)
|
||||
die("Invalid attempt to create duplicate branch: %s", name);
|
||||
@@ -1035,7 +1035,7 @@ static int store_object(
|
||||
git_SHA_CTX c;
|
||||
z_stream s;
|
||||
|
||||
hdrlen = sprintf((char*)hdr,"%s %lu", typename(type),
|
||||
hdrlen = sprintf((char *)hdr,"%s %lu", typename(type),
|
||||
(unsigned long)dat->len) + 1;
|
||||
git_SHA1_Init(&c);
|
||||
git_SHA1_Update(&c, hdr, hdrlen);
|
||||
@@ -1217,7 +1217,7 @@ static const char *get_mode(const char *str, uint16_t *modep)
|
||||
|
||||
static void load_tree(struct tree_entry *root)
|
||||
{
|
||||
unsigned char* sha1 = root->versions[1].sha1;
|
||||
unsigned char *sha1 = root->versions[1].sha1;
|
||||
struct object_entry *myoe;
|
||||
struct tree_content *t;
|
||||
unsigned long size;
|
||||
@@ -1258,8 +1258,8 @@ static void load_tree(struct tree_entry *root)
|
||||
e->versions[0].mode = e->versions[1].mode;
|
||||
e->name = to_atom(c, strlen(c));
|
||||
c += e->name->str_len + 1;
|
||||
hashcpy(e->versions[0].sha1, (unsigned char*)c);
|
||||
hashcpy(e->versions[1].sha1, (unsigned char*)c);
|
||||
hashcpy(e->versions[0].sha1, (unsigned char *)c);
|
||||
hashcpy(e->versions[1].sha1, (unsigned char *)c);
|
||||
c += 20;
|
||||
}
|
||||
free(buf);
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
#define _ALL_SOURCE 1
|
||||
#define _GNU_SOURCE 1
|
||||
#define _BSD_SOURCE 1
|
||||
#define _NETBSD_SOURCE 1
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -105,8 +105,11 @@ endif
|
||||
|
||||
ifeq ($(uname_S),Darwin)
|
||||
TKFRAMEWORK = /Library/Frameworks/Tk.framework/Resources/Wish.app
|
||||
ifeq ($(shell expr "$(uname_R)" : '9\.'),2)
|
||||
TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app
|
||||
ifeq ($(shell echo "$(uname_R)" | awk -F. '{if ($$1 >= 9) print "y"}')_$(shell test -d $(TKFRAMEWORK) || echo n),y_n)
|
||||
TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish.app
|
||||
ifeq ($(shell test -d $(TKFRAMEWORK) || echo n),n)
|
||||
TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app
|
||||
endif
|
||||
endif
|
||||
TKEXECUTABLE = $(shell basename "$(TKFRAMEWORK)" .app)
|
||||
endif
|
||||
|
||||
@@ -122,6 +122,7 @@ unset oguimsg
|
||||
set _appname {Git Gui}
|
||||
set _gitdir {}
|
||||
set _gitexec {}
|
||||
set _githtmldir {}
|
||||
set _reponame {}
|
||||
set _iscygwin {}
|
||||
set _search_path {}
|
||||
@@ -168,6 +169,28 @@ proc gitexec {args} {
|
||||
return [eval [list file join $_gitexec] $args]
|
||||
}
|
||||
|
||||
proc githtmldir {args} {
|
||||
global _githtmldir
|
||||
if {$_githtmldir eq {}} {
|
||||
if {[catch {set _githtmldir [git --html-path]}]} {
|
||||
# Git not installed or option not yet supported
|
||||
return {}
|
||||
}
|
||||
if {[is_Cygwin]} {
|
||||
set _githtmldir [exec cygpath \
|
||||
--windows \
|
||||
--absolute \
|
||||
$_githtmldir]
|
||||
} else {
|
||||
set _githtmldir [file normalize $_githtmldir]
|
||||
}
|
||||
}
|
||||
if {$args eq {}} {
|
||||
return $_githtmldir
|
||||
}
|
||||
return [eval [list file join $_githtmldir] $args]
|
||||
}
|
||||
|
||||
proc reponame {} {
|
||||
return $::_reponame
|
||||
}
|
||||
@@ -640,10 +663,13 @@ font create font_diffbold
|
||||
font create font_diffitalic
|
||||
|
||||
foreach class {Button Checkbutton Entry Label
|
||||
Labelframe Listbox Menu Message
|
||||
Labelframe Listbox Message
|
||||
Radiobutton Spinbox Text} {
|
||||
option add *$class.font font_ui
|
||||
}
|
||||
if {![is_MacOSX]} {
|
||||
option add *Menu.font font_ui
|
||||
}
|
||||
unset class
|
||||
|
||||
if {[is_Windows] || [is_MacOSX]} {
|
||||
@@ -699,7 +725,7 @@ proc apply_config {} {
|
||||
|
||||
set default_config(branch.autosetupmerge) true
|
||||
set default_config(merge.tool) {}
|
||||
set default_config(merge.keepbackup) true
|
||||
set default_config(mergetool.keepbackup) true
|
||||
set default_config(merge.diffstat) true
|
||||
set default_config(merge.summary) false
|
||||
set default_config(merge.verbosity) 2
|
||||
@@ -769,9 +795,9 @@ if {![regsub {^git version } $_git_version {} _git_version]} {
|
||||
set _real_git_version $_git_version
|
||||
regsub -- {[\-\.]dirty$} $_git_version {} _git_version
|
||||
regsub {\.[0-9]+\.g[0-9a-f]+$} $_git_version {} _git_version
|
||||
regsub {\.rc[0-9]+$} $_git_version {} _git_version
|
||||
regsub {\.[a-zA-Z]+\.?[0-9]+$} $_git_version {} _git_version
|
||||
regsub {\.GIT$} $_git_version {} _git_version
|
||||
regsub {\.[a-zA-Z]+\.[0-9]+$} $_git_version {} _git_version
|
||||
regsub {\.[a-zA-Z]+\.?[0-9]+$} $_git_version {} _git_version
|
||||
|
||||
if {![regexp {^[1-9]+(\.[0-9]+)+$} $_git_version]} {
|
||||
catch {wm withdraw .}
|
||||
@@ -1108,6 +1134,7 @@ set current_diff_path {}
|
||||
set is_3way_diff 0
|
||||
set is_conflict_diff 0
|
||||
set selected_commit_type new
|
||||
set diff_empty_count 0
|
||||
|
||||
set nullid "0000000000000000000000000000000000000000"
|
||||
set nullid2 "0000000000000000000000000000000000000001"
|
||||
@@ -1924,7 +1951,7 @@ proc do_explore {} {
|
||||
# freedesktop.org-conforming system is our best shot
|
||||
set explorer "xdg-open"
|
||||
}
|
||||
eval exec $explorer [file dirname [gitdir]] &
|
||||
eval exec $explorer [list [file nativename [file dirname [gitdir]]]] &
|
||||
}
|
||||
|
||||
set is_quitting 0
|
||||
@@ -2277,6 +2304,12 @@ set ui_comm {}
|
||||
# -- Menu Bar
|
||||
#
|
||||
menu .mbar -tearoff 0
|
||||
if {[is_MacOSX]} {
|
||||
# -- Apple Menu (Mac OS X only)
|
||||
#
|
||||
.mbar add cascade -label Apple -menu .mbar.apple
|
||||
menu .mbar.apple
|
||||
}
|
||||
.mbar add cascade -label [mc Repository] -menu .mbar.repository
|
||||
.mbar add cascade -label [mc Edit] -menu .mbar.edit
|
||||
if {[is_enabled branch]} {
|
||||
@@ -2292,7 +2325,6 @@ if {[is_enabled transport]} {
|
||||
if {[is_enabled multicommit] || [is_enabled singlecommit]} {
|
||||
.mbar add cascade -label [mc Tools] -menu .mbar.tools
|
||||
}
|
||||
. configure -menu .mbar
|
||||
|
||||
# -- Repository Menu
|
||||
#
|
||||
@@ -2545,19 +2577,7 @@ if {[is_enabled transport]} {
|
||||
}
|
||||
|
||||
if {[is_MacOSX]} {
|
||||
# -- Apple Menu (Mac OS X only)
|
||||
#
|
||||
.mbar add cascade -label Apple -menu .mbar.apple
|
||||
menu .mbar.apple
|
||||
|
||||
.mbar.apple add command -label [mc "About %s" [appname]] \
|
||||
-command do_about
|
||||
.mbar.apple add separator
|
||||
.mbar.apple add command \
|
||||
-label [mc "Preferences..."] \
|
||||
-command do_options \
|
||||
-accelerator $M1T-,
|
||||
bind . <$M1B-,> do_options
|
||||
proc ::tk::mac::ShowPreferences {} {do_options}
|
||||
} else {
|
||||
# -- Edit Menu
|
||||
#
|
||||
@@ -2585,17 +2605,23 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
|
||||
.mbar add cascade -label [mc Help] -menu .mbar.help
|
||||
menu .mbar.help
|
||||
|
||||
if {![is_MacOSX]} {
|
||||
if {[is_MacOSX]} {
|
||||
.mbar.apple add command -label [mc "About %s" [appname]] \
|
||||
-command do_about
|
||||
.mbar.apple add separator
|
||||
} else {
|
||||
.mbar.help add command -label [mc "About %s" [appname]] \
|
||||
-command do_about
|
||||
}
|
||||
. configure -menu .mbar
|
||||
|
||||
set doc_path [githtmldir]
|
||||
if {$doc_path ne {}} {
|
||||
set doc_path [file join $doc_path index.html]
|
||||
|
||||
set doc_path [file dirname [gitexec]]
|
||||
set doc_path [file join $doc_path Documentation index.html]
|
||||
|
||||
if {[is_Cygwin]} {
|
||||
set doc_path [exec cygpath --mixed $doc_path]
|
||||
if {[is_Cygwin]} {
|
||||
set doc_path [exec cygpath --mixed $doc_path]
|
||||
}
|
||||
}
|
||||
|
||||
if {[file isfile $doc_path]} {
|
||||
@@ -2944,7 +2970,7 @@ $ctxm add command \
|
||||
-command {tk_textPaste $ui_comm}
|
||||
$ctxm add command \
|
||||
-label [mc Delete] \
|
||||
-command {$ui_comm delete sel.first sel.last}
|
||||
-command {catch {$ui_comm delete sel.first sel.last}}
|
||||
$ctxm add separator
|
||||
$ctxm add command \
|
||||
-label [mc "Select All"] \
|
||||
|
||||
@@ -51,7 +51,7 @@ constructor dialog {} {
|
||||
$w.check \
|
||||
[mc "Delete Only If Merged Into"] \
|
||||
]
|
||||
$w_check none [mc "Always (Do not perform merge test.)"]
|
||||
$w_check none [mc "Always (Do not perform merge checks)"]
|
||||
pack $w.check -anchor nw -fill x -pady 5 -padx 5
|
||||
|
||||
foreach h [load_all_heads] {
|
||||
@@ -112,7 +112,7 @@ method _delete {} {
|
||||
}
|
||||
if {$to_delete eq {}} return
|
||||
if {$check_cmt eq {}} {
|
||||
set msg [mc "Recovering deleted branches is difficult. \n\n Delete the selected branches?"]
|
||||
set msg [mc "Recovering deleted branches is difficult.\n\nDelete the selected branches?"]
|
||||
if {[tk_messageBox \
|
||||
-icon warning \
|
||||
-type yesno \
|
||||
|
||||
@@ -9,6 +9,7 @@ field w_cons {}; # embedded console window object
|
||||
field new_expr ; # expression the user saw/thinks this is
|
||||
field new_hash ; # commit SHA-1 we are switching to
|
||||
field new_ref ; # ref we are updating/creating
|
||||
field old_hash ; # commit SHA-1 that was checked out when we started
|
||||
|
||||
field parent_w .; # window that started us
|
||||
field merge_type none; # type of merge to apply to existing branch
|
||||
@@ -280,11 +281,11 @@ method _start_checkout {} {
|
||||
|
||||
# -- Our in memory state should match the repository.
|
||||
#
|
||||
repository_state curType curHEAD curMERGE_HEAD
|
||||
repository_state curType old_hash curMERGE_HEAD
|
||||
if {[string match amend* $commit_type]
|
||||
&& $curType eq {normal}
|
||||
&& $curHEAD eq $HEAD} {
|
||||
} elseif {$commit_type ne $curType || $HEAD ne $curHEAD} {
|
||||
&& $old_hash eq $HEAD} {
|
||||
} elseif {$commit_type ne $curType || $HEAD ne $old_hash} {
|
||||
info_popup [mc "Last scanned state does not match repository state.
|
||||
|
||||
Another Git program has modified this repository since the last scan. A rescan must be performed before the current branch can be changed.
|
||||
@@ -297,7 +298,7 @@ The rescan will be automatically started now.
|
||||
return
|
||||
}
|
||||
|
||||
if {$curHEAD eq $new_hash} {
|
||||
if {$old_hash eq $new_hash} {
|
||||
_after_readtree $this
|
||||
} elseif {[is_config_true gui.trustmtime]} {
|
||||
_readtree $this
|
||||
@@ -453,13 +454,47 @@ method _after_readtree {} {
|
||||
If you wanted to be on a branch, create one now starting from 'This Detached Checkout'."]
|
||||
}
|
||||
|
||||
# -- Run the post-checkout hook.
|
||||
#
|
||||
set fd_ph [githook_read post-checkout $old_hash $new_hash 1]
|
||||
if {$fd_ph ne {}} {
|
||||
global pch_error
|
||||
set pch_error {}
|
||||
fconfigure $fd_ph -blocking 0 -translation binary -eofchar {}
|
||||
fileevent $fd_ph readable [cb _postcheckout_wait $fd_ph]
|
||||
} else {
|
||||
_update_repo_state $this
|
||||
}
|
||||
}
|
||||
|
||||
method _postcheckout_wait {fd_ph} {
|
||||
global pch_error
|
||||
|
||||
append pch_error [read $fd_ph]
|
||||
fconfigure $fd_ph -blocking 1
|
||||
if {[eof $fd_ph]} {
|
||||
if {[catch {close $fd_ph}]} {
|
||||
hook_failed_popup post-checkout $pch_error 0
|
||||
}
|
||||
unset pch_error
|
||||
_update_repo_state $this
|
||||
return
|
||||
}
|
||||
fconfigure $fd_ph -blocking 0
|
||||
}
|
||||
|
||||
method _update_repo_state {} {
|
||||
# -- Update our repository state. If we were previously in
|
||||
# amend mode we need to toss the current buffer and do a
|
||||
# full rescan to update our file lists. If we weren't in
|
||||
# amend mode our file lists are accurate and we can avoid
|
||||
# the rescan.
|
||||
#
|
||||
global selected_commit_type commit_type HEAD MERGE_HEAD PARENT
|
||||
global ui_comm
|
||||
|
||||
unlock_index
|
||||
set name [_name $this]
|
||||
set selected_commit_type new
|
||||
if {[string match amend* $commit_type]} {
|
||||
$ui_comm delete 0.0 end
|
||||
|
||||
@@ -398,6 +398,8 @@ method _do_new {} {
|
||||
grid $w_body.where.l $w_body.where.t $w_body.where.b -sticky ew
|
||||
pack $w_body.where -fill x
|
||||
|
||||
grid columnconfigure $w_body.where 1 -weight 1
|
||||
|
||||
trace add variable @local_path write [cb _write_local_path]
|
||||
bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
|
||||
update
|
||||
@@ -964,7 +966,34 @@ method _readtree_wait {fd} {
|
||||
return
|
||||
}
|
||||
|
||||
set done 1
|
||||
# -- Run the post-checkout hook.
|
||||
#
|
||||
set fd_ph [githook_read post-checkout [string repeat 0 40] \
|
||||
[git rev-parse HEAD] 1]
|
||||
if {$fd_ph ne {}} {
|
||||
global pch_error
|
||||
set pch_error {}
|
||||
fconfigure $fd_ph -blocking 0 -translation binary -eofchar {}
|
||||
fileevent $fd_ph readable [cb _postcheckout_wait $fd_ph]
|
||||
} else {
|
||||
set done 1
|
||||
}
|
||||
}
|
||||
|
||||
method _postcheckout_wait {fd_ph} {
|
||||
global pch_error
|
||||
|
||||
append pch_error [read $fd_ph]
|
||||
fconfigure $fd_ph -blocking 1
|
||||
if {[eof $fd_ph]} {
|
||||
if {[catch {close $fd_ph}]} {
|
||||
hook_failed_popup post-checkout $pch_error 0
|
||||
}
|
||||
unset pch_error
|
||||
set done 1
|
||||
return
|
||||
}
|
||||
fconfigure $fd_ph -blocking 0
|
||||
}
|
||||
|
||||
######################################################################
|
||||
@@ -998,6 +1027,8 @@ method _do_open {} {
|
||||
grid $w_body.where.l $w_body.where.t $w_body.where.b -sticky ew
|
||||
pack $w_body.where -fill x
|
||||
|
||||
grid columnconfigure $w_body.where 1 -weight 1
|
||||
|
||||
trace add variable @local_path write [cb _write_local_path]
|
||||
bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
|
||||
update
|
||||
|
||||
@@ -115,6 +115,23 @@ proc create_new_commit {} {
|
||||
rescan ui_ready
|
||||
}
|
||||
|
||||
proc setup_commit_encoding {msg_wt {quiet 0}} {
|
||||
global repo_config
|
||||
|
||||
if {[catch {set enc $repo_config(i18n.commitencoding)}]} {
|
||||
set enc utf-8
|
||||
}
|
||||
set use_enc [tcl_encoding $enc]
|
||||
if {$use_enc ne {}} {
|
||||
fconfigure $msg_wt -encoding $use_enc
|
||||
} else {
|
||||
if {!$quiet} {
|
||||
error_popup [mc "warning: Tcl does not support encoding '%s'." $enc]
|
||||
}
|
||||
fconfigure $msg_wt -encoding utf-8
|
||||
}
|
||||
}
|
||||
|
||||
proc commit_tree {} {
|
||||
global HEAD commit_type file_states ui_comm repo_config
|
||||
global pch_error
|
||||
@@ -200,16 +217,7 @@ A good commit message has the following format:
|
||||
set msg_p [gitdir GITGUI_EDITMSG]
|
||||
set msg_wt [open $msg_p w]
|
||||
fconfigure $msg_wt -translation lf
|
||||
if {[catch {set enc $repo_config(i18n.commitencoding)}]} {
|
||||
set enc utf-8
|
||||
}
|
||||
set use_enc [tcl_encoding $enc]
|
||||
if {$use_enc ne {}} {
|
||||
fconfigure $msg_wt -encoding $use_enc
|
||||
} else {
|
||||
error_popup [mc "warning: Tcl does not support encoding '%s'." $enc]
|
||||
fconfigure $msg_wt -encoding utf-8
|
||||
}
|
||||
setup_commit_encoding $msg_wt
|
||||
puts $msg_wt $msg
|
||||
close $msg_wt
|
||||
|
||||
@@ -362,6 +370,7 @@ A rescan will be automatically started now.
|
||||
append reflogm " ($commit_type)"
|
||||
}
|
||||
set msg_fd [open $msg_p r]
|
||||
setup_commit_encoding $msg_fd 1
|
||||
gets $msg_fd subject
|
||||
close $msg_fd
|
||||
append reflogm {: } $subject
|
||||
@@ -398,8 +407,8 @@ A rescan will be automatically started now.
|
||||
#
|
||||
set fd_ph [githook_read post-commit]
|
||||
if {$fd_ph ne {}} {
|
||||
upvar #0 pch_error$cmt_id pc_err
|
||||
set pc_err {}
|
||||
global pch_error
|
||||
set pch_error {}
|
||||
fconfigure $fd_ph -blocking 0 -translation binary -eofchar {}
|
||||
fileevent $fd_ph readable \
|
||||
[list commit_postcommit_wait $fd_ph $cmt_id]
|
||||
@@ -461,7 +470,7 @@ A rescan will be automatically started now.
|
||||
}
|
||||
|
||||
proc commit_postcommit_wait {fd_ph cmt_id} {
|
||||
upvar #0 pch_error$cmt_id pch_error
|
||||
global pch_error
|
||||
|
||||
append pch_error [read $fd_ph]
|
||||
fconfigure $fd_ph -blocking 1
|
||||
|
||||
@@ -51,11 +51,16 @@ proc force_diff_encoding {enc} {
|
||||
|
||||
proc handle_empty_diff {} {
|
||||
global current_diff_path file_states file_lists
|
||||
global diff_empty_count
|
||||
|
||||
set path $current_diff_path
|
||||
set s $file_states($path)
|
||||
if {[lindex $s 0] ne {_M}} return
|
||||
|
||||
# Prevent infinite rescan loops
|
||||
incr diff_empty_count
|
||||
if {$diff_empty_count > 1} return
|
||||
|
||||
info_popup [mc "No differences detected.
|
||||
|
||||
%s has no changes.
|
||||
@@ -310,6 +315,7 @@ proc read_diff {fd cont_info} {
|
||||
global ui_diff diff_active
|
||||
global is_3way_diff is_conflict_diff current_diff_header
|
||||
global current_diff_queue
|
||||
global diff_empty_count
|
||||
|
||||
$ui_diff conf -state normal
|
||||
while {[gets $fd line] >= 0} {
|
||||
@@ -415,7 +421,10 @@ proc read_diff {fd cont_info} {
|
||||
|
||||
if {[$ui_diff index end] eq {2.0}} {
|
||||
handle_empty_diff
|
||||
} else {
|
||||
set diff_empty_count 0
|
||||
}
|
||||
|
||||
set callback [lindex $cont_info 1]
|
||||
if {$callback ne {}} {
|
||||
eval $callback
|
||||
|
||||
@@ -88,7 +88,7 @@ proc merge_load_stages {path cont} {
|
||||
set merge_stages(3) {}
|
||||
set merge_stages_buf {}
|
||||
|
||||
set merge_stages_fd [eval git_read ls-files -u -z -- $path]
|
||||
set merge_stages_fd [eval git_read ls-files -u -z -- {$path}]
|
||||
|
||||
fconfigure $merge_stages_fd -blocking 0 -translation binary -encoding binary
|
||||
fileevent $merge_stages_fd readable [list read_merge_stages $merge_stages_fd $cont]
|
||||
@@ -382,7 +382,7 @@ proc merge_tool_finish {fd} {
|
||||
delete_temp_files $mtool_tmpfiles
|
||||
ui_status [mc "Merge tool failed."]
|
||||
} else {
|
||||
if {[is_config_true merge.keepbackup]} {
|
||||
if {[is_config_true mergetool.keepbackup]} {
|
||||
file rename -force -- $backup "$mtool_target.orig"
|
||||
}
|
||||
|
||||
|
||||
@@ -213,9 +213,7 @@ method _delete {} {
|
||||
-type yesno \
|
||||
-title [wm title $w] \
|
||||
-parent $w \
|
||||
-message [mc "Recovering deleted branches is difficult.
|
||||
|
||||
Delete the selected branches?"]] ne yes} {
|
||||
-message [mc "Recovering deleted branches is difficult.\n\nDelete the selected branches?"]] ne yes} {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ proc do_cygwin_shortcut {} {
|
||||
$argv0]
|
||||
win32_create_lnk $fn [list \
|
||||
$sh -c \
|
||||
"CHERE_INVOKING=1 source /etc/profile;[sq $me]" \
|
||||
"CHERE_INVOKING=1 source /etc/profile;[sq $me] &" \
|
||||
] \
|
||||
[file dirname [file normalize [gitdir]]]
|
||||
} err]} {
|
||||
|
||||
@@ -146,7 +146,7 @@ proc tools_complete {fullname w {ok 1}} {
|
||||
}
|
||||
|
||||
if {$ok} {
|
||||
set msg [mc "Tool completed succesfully: %s" $fullname]
|
||||
set msg [mc "Tool completed successfully: %s" $fullname]
|
||||
} else {
|
||||
set msg [mc "Tool failed: %s" $fullname]
|
||||
}
|
||||
|
||||
@@ -773,16 +773,6 @@ msgstr "Immer (ohne Zusammenführungstest)"
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "Folgende Zweige sind noch nicht mit »%s« zusammengeführt:"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"Gelöschte Zweige können nur mit größerem Aufwand wiederhergestellt werden.\n"
|
||||
"\n"
|
||||
"Gewählte Zweige jetzt löschen?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
@@ -2506,7 +2496,7 @@ msgstr "Starten: %s"
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr "Werkzeug erfolgreich abgeschlossen: %s"
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
|
||||
202
git-gui/po/fr.po
202
git-gui/po/fr.po
@@ -62,7 +62,7 @@ msgstr ""
|
||||
"\n"
|
||||
"%s nécessite au moins Git 1.5.0.\n"
|
||||
"\n"
|
||||
"Peut'on considérer que '%s' est en version 1.5.0 ?\n"
|
||||
"Peut-on considérer que '%s' est en version 1.5.0 ?\n"
|
||||
|
||||
#: git-gui.sh:1062
|
||||
msgid "Git directory not found:"
|
||||
@@ -82,7 +82,7 @@ msgstr "Aucun répertoire de travail"
|
||||
|
||||
#: git-gui.sh:1247 lib/checkout_op.tcl:305
|
||||
msgid "Refreshing file status..."
|
||||
msgstr "Rafraichissement du status des fichiers..."
|
||||
msgstr "Rafraîchissement du statut des fichiers..."
|
||||
|
||||
#: git-gui.sh:1303
|
||||
msgid "Scanning for modified files ..."
|
||||
@@ -163,7 +163,7 @@ msgstr "Dépôt"
|
||||
|
||||
#: git-gui.sh:2281
|
||||
msgid "Edit"
|
||||
msgstr "Edition"
|
||||
msgstr "Édition"
|
||||
|
||||
#: git-gui.sh:2283 lib/choose_rev.tcl:561
|
||||
msgid "Branch"
|
||||
@@ -199,7 +199,7 @@ msgstr "Naviguer dans la branche..."
|
||||
|
||||
#: git-gui.sh:2316
|
||||
msgid "Visualize Current Branch's History"
|
||||
msgstr "Visualiser historique branche courante"
|
||||
msgstr "Visualiser l'historique de la branche courante"
|
||||
|
||||
#: git-gui.sh:2320
|
||||
msgid "Visualize All Branch History"
|
||||
@@ -208,12 +208,12 @@ msgstr "Voir l'historique de toutes les branches"
|
||||
#: git-gui.sh:2327
|
||||
#, tcl-format
|
||||
msgid "Browse %s's Files"
|
||||
msgstr "Naviguer l'arborescence de %s"
|
||||
msgstr "Parcourir l'arborescence de %s"
|
||||
|
||||
#: git-gui.sh:2329
|
||||
#, tcl-format
|
||||
msgid "Visualize %s's History"
|
||||
msgstr "Voir l'historique de la branche: %s"
|
||||
msgstr "Voir l'historique de la branche : %s"
|
||||
|
||||
#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67
|
||||
msgid "Database Statistics"
|
||||
@@ -230,7 +230,7 @@ msgstr "Vérifier le dépôt"
|
||||
#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7
|
||||
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
|
||||
msgid "Create Desktop Icon"
|
||||
msgstr "Créer icône sur bureau"
|
||||
msgstr "Créer une icône sur le bureau"
|
||||
|
||||
#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191
|
||||
msgid "Quit"
|
||||
@@ -320,7 +320,7 @@ msgstr "Désindexer"
|
||||
|
||||
#: git-gui.sh:2484 lib/index.tcl:410
|
||||
msgid "Revert Changes"
|
||||
msgstr "Annuler les modifications (revert)"
|
||||
msgstr "Annuler les modifications"
|
||||
|
||||
#: git-gui.sh:2491 git-gui.sh:3069
|
||||
msgid "Show Less Context"
|
||||
@@ -382,7 +382,7 @@ msgstr "Documentation en ligne"
|
||||
|
||||
#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56
|
||||
msgid "Show SSH Key"
|
||||
msgstr "Montrer clé SSH"
|
||||
msgstr "Montrer la clé SSH"
|
||||
|
||||
#: git-gui.sh:2707
|
||||
#, tcl-format
|
||||
@@ -445,7 +445,7 @@ msgstr "Fichier :"
|
||||
|
||||
#: git-gui.sh:3078
|
||||
msgid "Refresh"
|
||||
msgstr "Rafraichir"
|
||||
msgstr "Rafraîchir"
|
||||
|
||||
#: git-gui.sh:3099
|
||||
msgid "Decrease Font Size"
|
||||
@@ -457,7 +457,7 @@ msgstr "Agrandir la police"
|
||||
|
||||
#: git-gui.sh:3111 lib/blame.tcl:281
|
||||
msgid "Encoding"
|
||||
msgstr "Encodage"
|
||||
msgstr "Codage des caractères"
|
||||
|
||||
#: git-gui.sh:3122
|
||||
msgid "Apply/Reverse Hunk"
|
||||
@@ -469,7 +469,7 @@ msgstr "Appliquer/Inverser la ligne"
|
||||
|
||||
#: git-gui.sh:3137
|
||||
msgid "Run Merge Tool"
|
||||
msgstr "Lancer outil de merge"
|
||||
msgstr "Lancer l'outil de fusion"
|
||||
|
||||
#: git-gui.sh:3142
|
||||
msgid "Use Remote Version"
|
||||
@@ -527,7 +527,7 @@ msgid ""
|
||||
"Tcl binary distributed by Cygwin."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Ceci est du à un problème connu avec\n"
|
||||
"Ceci est dû à un problème connu avec\n"
|
||||
"le binaire Tcl distribué par Cygwin."
|
||||
|
||||
#: git-gui.sh:3336
|
||||
@@ -630,11 +630,11 @@ msgstr "Fichier original :"
|
||||
|
||||
#: lib/blame.tcl:1021
|
||||
msgid "Cannot find HEAD commit:"
|
||||
msgstr "Impossible de trouver le commit HEAD:"
|
||||
msgstr "Impossible de trouver le commit HEAD :"
|
||||
|
||||
#: lib/blame.tcl:1076
|
||||
msgid "Cannot find parent commit:"
|
||||
msgstr "Impossible de trouver le commit parent:"
|
||||
msgstr "Impossible de trouver le commit parent :"
|
||||
|
||||
#: lib/blame.tcl:1091
|
||||
msgid "Unable to display parent"
|
||||
@@ -646,7 +646,7 @@ msgstr "Erreur lors du chargement des différences :"
|
||||
|
||||
#: lib/blame.tcl:1232
|
||||
msgid "Originally By:"
|
||||
msgstr "A l'origine par :"
|
||||
msgstr "À l'origine par :"
|
||||
|
||||
#: lib/blame.tcl:1238
|
||||
msgid "In File:"
|
||||
@@ -691,11 +691,11 @@ msgstr "Détacher de la branche locale"
|
||||
|
||||
#: lib/branch_create.tcl:22
|
||||
msgid "Create Branch"
|
||||
msgstr "Créer branche"
|
||||
msgstr "Créer une branche"
|
||||
|
||||
#: lib/branch_create.tcl:27
|
||||
msgid "Create New Branch"
|
||||
msgstr "Créer nouvelle branche"
|
||||
msgstr "Créer une nouvelle branche"
|
||||
|
||||
#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377
|
||||
msgid "Create"
|
||||
@@ -719,7 +719,7 @@ msgstr "Révision initiale"
|
||||
|
||||
#: lib/branch_create.tcl:72
|
||||
msgid "Update Existing Branch:"
|
||||
msgstr "Mettre à jour branche existante :"
|
||||
msgstr "Mettre à jour une branche existante :"
|
||||
|
||||
#: lib/branch_create.tcl:75
|
||||
msgid "No"
|
||||
@@ -727,7 +727,7 @@ msgstr "Non"
|
||||
|
||||
#: lib/branch_create.tcl:80
|
||||
msgid "Fast Forward Only"
|
||||
msgstr "Mise-à-jour rectiligne seulement (fast-forward)"
|
||||
msgstr "Mise à jour rectiligne seulement (fast-forward)"
|
||||
|
||||
#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536
|
||||
msgid "Reset"
|
||||
@@ -769,7 +769,7 @@ msgstr "Branches locales"
|
||||
|
||||
#: lib/branch_delete.tcl:52
|
||||
msgid "Delete Only If Merged Into"
|
||||
msgstr "Supprimer seulement si fusionnée dans:"
|
||||
msgstr "Supprimer seulement si fusionnée dans :"
|
||||
|
||||
#: lib/branch_delete.tcl:54
|
||||
msgid "Always (Do not perform merge test.)"
|
||||
@@ -780,23 +780,13 @@ msgstr "Toujours (Ne pas faire de test de fusion.)"
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "Les branches suivantes ne sont pas complètement fusionnées dans %s :"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"Récupérer des branches supprimées est difficile.\n"
|
||||
"\n"
|
||||
"Supprimer les branches sélectionnées ?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
"Failed to delete branches:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"La suppression des branches suivantes a échouée :\n"
|
||||
"La suppression des branches suivantes a échoué :\n"
|
||||
"%s"
|
||||
|
||||
#: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
|
||||
@@ -902,11 +892,11 @@ msgstr "La stratégie de fusion '%s' n'est pas supportée."
|
||||
#: lib/checkout_op.tcl:261
|
||||
#, tcl-format
|
||||
msgid "Failed to update '%s'."
|
||||
msgstr "La mise à jour de '%s' a échouée."
|
||||
msgstr "La mise à jour de '%s' a échoué."
|
||||
|
||||
#: lib/checkout_op.tcl:273
|
||||
msgid "Staging area (index) is already locked."
|
||||
msgstr "L'index (staging area) est déjà vérouillé"
|
||||
msgstr "L'index (staging area) est déjà verrouillé."
|
||||
|
||||
#: lib/checkout_op.tcl:288
|
||||
msgid ""
|
||||
@@ -918,7 +908,7 @@ msgid ""
|
||||
"The rescan will be automatically started now.\n"
|
||||
msgstr ""
|
||||
"L'état lors de la dernière synchronisation ne correspond plus à l'état du "
|
||||
"dépôt\n"
|
||||
"dépôt.\n"
|
||||
"\n"
|
||||
"Un autre programme Git a modifié ce dépôt depuis la dernière "
|
||||
"synchronisation. Une resynchronisation doit être effectuée avant de pouvoir "
|
||||
@@ -956,9 +946,9 @@ msgid ""
|
||||
"If you wanted to be on a branch, create one now starting from 'This Detached "
|
||||
"Checkout'."
|
||||
msgstr ""
|
||||
"Vous n'êtes plus ur une branche locale.\n"
|
||||
"Vous n'êtes plus sur une branche locale.\n"
|
||||
"\n"
|
||||
"Si vous vouliez être sur une branche, créez en une maintenant en partant de "
|
||||
"Si vous vouliez être sur une branche, créez-en une maintenant en partant de "
|
||||
"'Cet emprunt détaché'."
|
||||
|
||||
#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472
|
||||
@@ -1000,7 +990,7 @@ msgstr ""
|
||||
"mis à jour avec succès, mais la mise à jour d'un fichier interne à Git a "
|
||||
"échouée.\n"
|
||||
"\n"
|
||||
"Cela n'aurait pas du se produire. %s va abandonner et se terminer."
|
||||
"Cela n'aurait pas dû se produire. %s va abandonner et se terminer."
|
||||
|
||||
#: lib/choose_font.tcl:39
|
||||
msgid "Select"
|
||||
@@ -1023,8 +1013,8 @@ msgid ""
|
||||
"This is example text.\n"
|
||||
"If you like this text, it can be your font."
|
||||
msgstr ""
|
||||
"C'est un texte d'exemple.\n"
|
||||
"Si vous aimez ce texte, vous pouvez choisir cette police"
|
||||
"Ceci est un texte d'exemple.\n"
|
||||
"Si vous aimez ce texte, vous pouvez choisir cette police."
|
||||
|
||||
#: lib/choose_repository.tcl:28
|
||||
msgid "Git Gui"
|
||||
@@ -1040,7 +1030,7 @@ msgstr "Nouveau..."
|
||||
|
||||
#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465
|
||||
msgid "Clone Existing Repository"
|
||||
msgstr "Cloner dépôt existant"
|
||||
msgstr "Cloner un dépôt existant"
|
||||
|
||||
#: lib/choose_repository.tcl:106
|
||||
msgid "Clone..."
|
||||
@@ -1048,7 +1038,7 @@ msgstr "Cloner..."
|
||||
|
||||
#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983
|
||||
msgid "Open Existing Repository"
|
||||
msgstr "Ouvrir dépôt existant"
|
||||
msgstr "Ouvrir un dépôt existant"
|
||||
|
||||
#: lib/choose_repository.tcl:119
|
||||
msgid "Open..."
|
||||
@@ -1056,17 +1046,17 @@ msgstr "Ouvrir..."
|
||||
|
||||
#: lib/choose_repository.tcl:132
|
||||
msgid "Recent Repositories"
|
||||
msgstr "Dépôt récemment utilisés"
|
||||
msgstr "Dépôts récemment utilisés"
|
||||
|
||||
#: lib/choose_repository.tcl:138
|
||||
msgid "Open Recent Repository:"
|
||||
msgstr "Ouvrir dépôt récent :"
|
||||
msgstr "Ouvrir un dépôt récent :"
|
||||
|
||||
#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309
|
||||
#: lib/choose_repository.tcl:316
|
||||
#, tcl-format
|
||||
msgid "Failed to create repository %s:"
|
||||
msgstr "La création du dépôt %s a échouée :"
|
||||
msgstr "La création du dépôt %s a échoué :"
|
||||
|
||||
#: lib/choose_repository.tcl:387
|
||||
msgid "Directory:"
|
||||
@@ -1093,11 +1083,11 @@ msgstr "Cloner"
|
||||
|
||||
#: lib/choose_repository.tcl:473
|
||||
msgid "Source Location:"
|
||||
msgstr "Emplacement source:"
|
||||
msgstr "Emplacement source :"
|
||||
|
||||
#: lib/choose_repository.tcl:484
|
||||
msgid "Target Directory:"
|
||||
msgstr "Répertoire cible:"
|
||||
msgstr "Répertoire cible :"
|
||||
|
||||
#: lib/choose_repository.tcl:496
|
||||
msgid "Clone Type:"
|
||||
@@ -1137,7 +1127,7 @@ msgstr "L'emplacement %s existe déjà."
|
||||
|
||||
#: lib/choose_repository.tcl:622
|
||||
msgid "Failed to configure origin"
|
||||
msgstr "La configuration de l'origine a échouée."
|
||||
msgstr "La configuration de l'origine a échoué."
|
||||
|
||||
#: lib/choose_repository.tcl:634
|
||||
msgid "Counting objects"
|
||||
@@ -1242,7 +1232,7 @@ msgstr "fichiers"
|
||||
|
||||
#: lib/choose_repository.tcl:962
|
||||
msgid "Initial file checkout failed."
|
||||
msgstr "Chargement initial du fichier échoué."
|
||||
msgstr "Le chargement initial du fichier a échoué."
|
||||
|
||||
#: lib/choose_repository.tcl:978
|
||||
msgid "Open"
|
||||
@@ -1284,7 +1274,7 @@ msgstr "Révision invalide : %s"
|
||||
|
||||
#: lib/choose_rev.tcl:338
|
||||
msgid "No revision selected."
|
||||
msgstr "Pas de révision selectionnée."
|
||||
msgstr "Pas de révision sélectionnée."
|
||||
|
||||
#: lib/choose_rev.tcl:346
|
||||
msgid "Revision expression is empty."
|
||||
@@ -1292,7 +1282,7 @@ msgstr "L'expression de révision est vide."
|
||||
|
||||
#: lib/choose_rev.tcl:531
|
||||
msgid "Updated"
|
||||
msgstr "Mise-à-jour:"
|
||||
msgstr "Mise à jour:"
|
||||
|
||||
#: lib/choose_rev.tcl:559
|
||||
msgid "URL"
|
||||
@@ -1320,8 +1310,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Impossible de corriger pendant une fusion.\n"
|
||||
"\n"
|
||||
"Vous êtes actuellement au milieu d'une fusion qui n'a pas été completement "
|
||||
"terminée. Vous ne pouvez pas corriger le commit précédant sauf si vous "
|
||||
"Vous êtes actuellement au milieu d'une fusion qui n'a pas été complètement "
|
||||
"terminée. Vous ne pouvez pas corriger le commit précédent sauf si vous "
|
||||
"abandonnez la fusion courante.\n"
|
||||
|
||||
#: lib/commit.tcl:49
|
||||
@@ -1409,7 +1399,7 @@ msgstr ""
|
||||
#: lib/commit.tcl:211
|
||||
#, tcl-format
|
||||
msgid "warning: Tcl does not support encoding '%s'."
|
||||
msgstr "attention : Tcl ne supporte pas l'encodage '%s'."
|
||||
msgstr "attention : Tcl ne supporte pas le codage '%s'."
|
||||
|
||||
#: lib/commit.tcl:227
|
||||
msgid "Calling pre-commit hook..."
|
||||
@@ -1469,12 +1459,12 @@ msgstr "commit-tree a échoué :"
|
||||
|
||||
#: lib/commit.tcl:373
|
||||
msgid "update-ref failed:"
|
||||
msgstr "update-ref a échoué"
|
||||
msgstr "update-ref a échoué :"
|
||||
|
||||
#: lib/commit.tcl:461
|
||||
#, tcl-format
|
||||
msgid "Created commit %s: %s"
|
||||
msgstr "Commit créé %s : %s"
|
||||
msgstr "Commit %s créé : %s"
|
||||
|
||||
#: lib/console.tcl:59
|
||||
msgid "Working... please wait..."
|
||||
@@ -1581,24 +1571,24 @@ msgid ""
|
||||
"LOCAL: deleted\n"
|
||||
"REMOTE:\n"
|
||||
msgstr ""
|
||||
"LOCAL: supprimé\n"
|
||||
"DISTANT:\n"
|
||||
"LOCAL : supprimé\n"
|
||||
"DISTANT :\n"
|
||||
|
||||
#: lib/diff.tcl:125
|
||||
msgid ""
|
||||
"REMOTE: deleted\n"
|
||||
"LOCAL:\n"
|
||||
msgstr ""
|
||||
"DISTANT: supprimé\n"
|
||||
"LOCAL:\n"
|
||||
"DISTANT : supprimé\n"
|
||||
"LOCAL :\n"
|
||||
|
||||
#: lib/diff.tcl:132
|
||||
msgid "LOCAL:\n"
|
||||
msgstr "LOCAL:\n"
|
||||
msgstr "LOCAL :\n"
|
||||
|
||||
#: lib/diff.tcl:135
|
||||
msgid "REMOTE:\n"
|
||||
msgstr "DISTANT:\n"
|
||||
msgstr "DISTANT :\n"
|
||||
|
||||
#: lib/diff.tcl:197 lib/diff.tcl:296
|
||||
#, tcl-format
|
||||
@@ -1624,7 +1614,7 @@ msgid ""
|
||||
"* Showing only first %d bytes.\n"
|
||||
msgstr ""
|
||||
"* Le fichier non suivi fait %d octets.\n"
|
||||
"* On montre seulement les premiers %d octets.\n"
|
||||
"* Seuls les %d premiers octets sont montrés.\n"
|
||||
|
||||
#: lib/diff.tcl:228
|
||||
#, tcl-format
|
||||
@@ -1635,7 +1625,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"\n"
|
||||
"* Fichier suivi raccourcis ici de %s.\n"
|
||||
"* Pour voir le fichier entier, utiliser un éditeur externe.\n"
|
||||
"* Pour voir le fichier entier, utilisez un éditeur externe.\n"
|
||||
|
||||
#: lib/diff.tcl:436
|
||||
msgid "Failed to unstage selected hunk."
|
||||
@@ -1680,7 +1670,7 @@ msgstr "Vous devez corriger les erreurs suivantes avant de pouvoir commiter."
|
||||
|
||||
#: lib/index.tcl:6
|
||||
msgid "Unable to unlock the index."
|
||||
msgstr "Impossible de dévérouiller l'index."
|
||||
msgstr "Impossible de déverrouiller l'index."
|
||||
|
||||
#: lib/index.tcl:15
|
||||
msgid "Index Error"
|
||||
@@ -1700,12 +1690,12 @@ msgstr "Continuer"
|
||||
|
||||
#: lib/index.tcl:31
|
||||
msgid "Unlock Index"
|
||||
msgstr "Déverouiller l'index"
|
||||
msgstr "Déverrouiller l'index"
|
||||
|
||||
#: lib/index.tcl:287
|
||||
#, tcl-format
|
||||
msgid "Unstaging %s from commit"
|
||||
msgstr "Désindexation de: %s"
|
||||
msgstr "Désindexation de : %s"
|
||||
|
||||
#: lib/index.tcl:326
|
||||
msgid "Ready to commit."
|
||||
@@ -1804,11 +1794,11 @@ msgid ""
|
||||
msgstr ""
|
||||
"Vous êtes au milieu d'une modification.\n"
|
||||
"\n"
|
||||
"Le fichier %s est modifié.\n"
|
||||
"Le fichier %s a été modifié.\n"
|
||||
"\n"
|
||||
"Vous devriez terminer le commit courant avant de lancer une fusion. En "
|
||||
"faisait comme cela, vous éviterez de devoir éventuellement abandonner une "
|
||||
"fusion ayant échouée.\n"
|
||||
"fusion ayant échoué.\n"
|
||||
|
||||
#: lib/merge.tcl:107
|
||||
#, tcl-format
|
||||
@@ -1826,7 +1816,7 @@ msgstr "La fusion s'est faite avec succès."
|
||||
|
||||
#: lib/merge.tcl:133
|
||||
msgid "Merge failed. Conflict resolution is required."
|
||||
msgstr "La fusion a echouée. Il est nécessaire de résoudre les conflicts."
|
||||
msgstr "La fusion a echoué. Il est nécessaire de résoudre les conflits."
|
||||
|
||||
#: lib/merge.tcl:158
|
||||
#, tcl-format
|
||||
@@ -1914,16 +1904,16 @@ msgid ""
|
||||
"\n"
|
||||
"This operation can be undone only by restarting the merge."
|
||||
msgstr ""
|
||||
"Noter que le diff ne montre que les modifications en conflict.\n"
|
||||
"Noter que le diff ne montre que les modifications en conflit.\n"
|
||||
"\n"
|
||||
"%s sera écrasé.\n"
|
||||
"\n"
|
||||
"Cette opération ne peut être défaite qu'en relançant la fusion."
|
||||
"Cette opération ne peut être inversée qu'en relançant la fusion."
|
||||
|
||||
#: lib/mergetool.tcl:45
|
||||
#, tcl-format
|
||||
msgid "File %s seems to have unresolved conflicts, still stage?"
|
||||
msgstr "Le fichier %s semble avoir des conflicts non résolus, indéxer quand même ?"
|
||||
msgstr "Le fichier %s semble avoir des conflits non résolus, indexer quand même ?"
|
||||
|
||||
#: lib/mergetool.tcl:60
|
||||
#, tcl-format
|
||||
@@ -1932,11 +1922,11 @@ msgstr "Ajouter une résolution pour %s"
|
||||
|
||||
#: lib/mergetool.tcl:141
|
||||
msgid "Cannot resolve deletion or link conflicts using a tool"
|
||||
msgstr "Impossible de résoudre la suppression ou de relier des conflicts en utilisant un outil"
|
||||
msgstr "Impossible de résoudre la suppression ou de relier des conflits en utilisant un outil"
|
||||
|
||||
#: lib/mergetool.tcl:146
|
||||
msgid "Conflict file does not exist"
|
||||
msgstr "Le fichier en conflict n'existe pas."
|
||||
msgstr "Le fichier en conflit n'existe pas."
|
||||
|
||||
#: lib/mergetool.tcl:264
|
||||
#, tcl-format
|
||||
@@ -1958,7 +1948,7 @@ msgid ""
|
||||
"Error retrieving versions:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Erreur lors de la récupération des versions:\n"
|
||||
"Erreur lors de la récupération des versions :\n"
|
||||
"%s"
|
||||
|
||||
#: lib/mergetool.tcl:343
|
||||
@@ -1968,7 +1958,7 @@ msgid ""
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Impossible de lancer l'outil de fusion:\n"
|
||||
"Impossible de lancer l'outil de fusion :\n"
|
||||
"\n"
|
||||
"%s"
|
||||
|
||||
@@ -1983,12 +1973,12 @@ msgstr "L'outil de fusion a échoué."
|
||||
#: lib/option.tcl:11
|
||||
#, tcl-format
|
||||
msgid "Invalid global encoding '%s'"
|
||||
msgstr "Encodage global invalide '%s'"
|
||||
msgstr "Codage global '%s' invalide"
|
||||
|
||||
#: lib/option.tcl:19
|
||||
#, tcl-format
|
||||
msgid "Invalid repo encoding '%s'"
|
||||
msgstr "Encodage de dépôt invalide '%s'"
|
||||
msgstr "Codage de dépôt '%s' invalide"
|
||||
|
||||
#: lib/option.tcl:117
|
||||
msgid "Restore Defaults"
|
||||
@@ -2001,7 +1991,7 @@ msgstr "Sauvegarder"
|
||||
#: lib/option.tcl:131
|
||||
#, tcl-format
|
||||
msgid "%s Repository"
|
||||
msgstr "Dépôt: %s"
|
||||
msgstr "Dépôt : %s"
|
||||
|
||||
#: lib/option.tcl:132
|
||||
msgid "Global (All Repositories)"
|
||||
@@ -2069,7 +2059,7 @@ msgstr "Nouveau modèle de nom de branche"
|
||||
|
||||
#: lib/option.tcl:155
|
||||
msgid "Default File Contents Encoding"
|
||||
msgstr "Encodage du contenu des fichiers par défaut"
|
||||
msgstr "Codage du contenu des fichiers par défaut"
|
||||
|
||||
#: lib/option.tcl:203
|
||||
msgid "Change"
|
||||
@@ -2098,11 +2088,11 @@ msgstr "Préférences"
|
||||
|
||||
#: lib/option.tcl:314
|
||||
msgid "Failed to completely save options:"
|
||||
msgstr "La sauvegarde complète des options a échouée :"
|
||||
msgstr "La sauvegarde complète des options a échoué :"
|
||||
|
||||
#: lib/remote.tcl:163
|
||||
msgid "Remove Remote"
|
||||
msgstr "Supprimer dépôt distant"
|
||||
msgstr "Supprimer un dépôt distant"
|
||||
|
||||
#: lib/remote.tcl:168
|
||||
msgid "Prune from"
|
||||
@@ -2118,11 +2108,11 @@ msgstr "Pousser vers"
|
||||
|
||||
#: lib/remote_add.tcl:19
|
||||
msgid "Add Remote"
|
||||
msgstr "Ajouter dépôt distant"
|
||||
msgstr "Ajouter un dépôt distant"
|
||||
|
||||
#: lib/remote_add.tcl:24
|
||||
msgid "Add New Remote"
|
||||
msgstr "Ajouter nouveau dépôt distant"
|
||||
msgstr "Ajouter un nouveau dépôt distant"
|
||||
|
||||
#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36
|
||||
msgid "Add"
|
||||
@@ -2134,7 +2124,7 @@ msgstr "Détails des dépôts distants"
|
||||
|
||||
#: lib/remote_add.tcl:50
|
||||
msgid "Location:"
|
||||
msgstr "Emplacement:"
|
||||
msgstr "Emplacement :"
|
||||
|
||||
#: lib/remote_add.tcl:62
|
||||
msgid "Further Action"
|
||||
@@ -2146,7 +2136,7 @@ msgstr "Récupérer immédiatement"
|
||||
|
||||
#: lib/remote_add.tcl:71
|
||||
msgid "Initialize Remote Repository and Push"
|
||||
msgstr "Initialiser dépôt distant et pousser"
|
||||
msgstr "Initialiser un dépôt distant et pousser"
|
||||
|
||||
#: lib/remote_add.tcl:77
|
||||
msgid "Do Nothing Else Now"
|
||||
@@ -2193,7 +2183,7 @@ msgstr "Mise en place de %s (à %s)"
|
||||
|
||||
#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
|
||||
msgid "Delete Branch Remotely"
|
||||
msgstr "Supprimer branche à distance"
|
||||
msgstr "Supprimer une branche à distance"
|
||||
|
||||
#: lib/remote_branch_delete.tcl:47
|
||||
msgid "From Repository"
|
||||
@@ -2244,8 +2234,8 @@ msgid ""
|
||||
"One or more of the merge tests failed because you have not fetched the "
|
||||
"necessary commits. Try fetching from %s first."
|
||||
msgstr ""
|
||||
"Une ou plusieurs des tests de fusion ont échoués parce que vous n'avez pas "
|
||||
"récupéré les commits nécessaires. Essayez de récupéré à partir de %s d'abord."
|
||||
"Un ou plusieurs des tests de fusion ont échoué parce que vous n'avez pas "
|
||||
"récupéré les commits nécessaires. Essayez de récupérer à partir de %s d'abord."
|
||||
|
||||
#: lib/remote_branch_delete.tcl:207
|
||||
msgid "Please select one or more branches to delete."
|
||||
@@ -2257,14 +2247,14 @@ msgid ""
|
||||
"\n"
|
||||
"Delete the selected branches?"
|
||||
msgstr ""
|
||||
"Récupérer des branches supprimées est difficile.\n"
|
||||
"Il est difficile de récupérer des branches supprimées.\n"
|
||||
"\n"
|
||||
"Souhaitez vous supprimer les branches sélectionnées ?"
|
||||
"Supprimer les branches sélectionnées ?"
|
||||
|
||||
#: lib/remote_branch_delete.tcl:226
|
||||
#, tcl-format
|
||||
msgid "Deleting branches from %s"
|
||||
msgstr "Supprimer les branches de %s"
|
||||
msgstr "Suppression des branches de %s"
|
||||
|
||||
#: lib/remote_branch_delete.tcl:286
|
||||
msgid "No repository selected."
|
||||
@@ -2285,7 +2275,7 @@ msgstr "Suivant"
|
||||
|
||||
#: lib/search.tcl:24
|
||||
msgid "Prev"
|
||||
msgstr "Précédant"
|
||||
msgstr "Précédent"
|
||||
|
||||
#: lib/search.tcl:25
|
||||
msgid "Case-Sensitive"
|
||||
@@ -2293,7 +2283,7 @@ msgstr "Sensible à la casse"
|
||||
|
||||
#: lib/shortcut.tcl:20 lib/shortcut.tcl:61
|
||||
msgid "Cannot write shortcut:"
|
||||
msgstr "Impossible d'écrire le raccourcis :"
|
||||
msgstr "Impossible d'écrire le raccourci :"
|
||||
|
||||
#: lib/shortcut.tcl:136
|
||||
msgid "Cannot write icon:"
|
||||
@@ -2318,7 +2308,7 @@ msgstr "Réinitialisation du dictionnaire à %s."
|
||||
|
||||
#: lib/spellcheck.tcl:73
|
||||
msgid "Spell checker silently failed on startup"
|
||||
msgstr "La vérification d'orthographe a échouée silentieusement au démarrage"
|
||||
msgstr "La vérification d'orthographe a échoué silencieusement au démarrage"
|
||||
|
||||
#: lib/spellcheck.tcl:80
|
||||
msgid "Unrecognized spell checker"
|
||||
@@ -2351,11 +2341,11 @@ msgstr "Générer une clé"
|
||||
|
||||
#: lib/sshkey.tcl:56
|
||||
msgid "Copy To Clipboard"
|
||||
msgstr "Copier dans le presse papier"
|
||||
msgstr "Copier dans le presse-papier"
|
||||
|
||||
#: lib/sshkey.tcl:70
|
||||
msgid "Your OpenSSH Public Key"
|
||||
msgstr "Votre clé publique Open SSH"
|
||||
msgstr "Votre clé publique OpenSSH"
|
||||
|
||||
#: lib/sshkey.tcl:78
|
||||
msgid "Generating..."
|
||||
@@ -2368,7 +2358,7 @@ msgid ""
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Impossible de lancer ssh-keygen:\n"
|
||||
"Impossible de lancer ssh-keygen :\n"
|
||||
"\n"
|
||||
"%s"
|
||||
|
||||
@@ -2398,7 +2388,7 @@ msgstr "Lancer %s nécessite qu'un fichier soit sélectionné."
|
||||
#: lib/tools.tcl:90
|
||||
#, tcl-format
|
||||
msgid "Are you sure you want to run %s?"
|
||||
msgstr "Êtes vous sûr de vouloir lancer %s ?"
|
||||
msgstr "Êtes-vous sûr de vouloir lancer %s ?"
|
||||
|
||||
#: lib/tools.tcl:110
|
||||
#, tcl-format
|
||||
@@ -2412,7 +2402,7 @@ msgstr "Lancement de : %s"
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr "L'outil a terminé avec succès : %s"
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
@@ -2422,11 +2412,11 @@ msgstr "L'outil a échoué : %s"
|
||||
|
||||
#: lib/tools_dlg.tcl:22
|
||||
msgid "Add Tool"
|
||||
msgstr "Ajouter outil"
|
||||
msgstr "Ajouter un outil"
|
||||
|
||||
#: lib/tools_dlg.tcl:28
|
||||
msgid "Add New Tool Command"
|
||||
msgstr "Ajouter nouvelle commande d'outil"
|
||||
msgstr "Ajouter une nouvelle commande d'outil"
|
||||
|
||||
#: lib/tools_dlg.tcl:33
|
||||
msgid "Add globally"
|
||||
@@ -2438,7 +2428,7 @@ msgstr "Détails sur l'outil"
|
||||
|
||||
#: lib/tools_dlg.tcl:48
|
||||
msgid "Use '/' separators to create a submenu tree:"
|
||||
msgstr "Utiliser les séparateurs '/' pour créer un arbre de sous menus :"
|
||||
msgstr "Utiliser les séparateurs '/' pour créer un arbre de sous-menus :"
|
||||
|
||||
#: lib/tools_dlg.tcl:61
|
||||
msgid "Command:"
|
||||
@@ -2462,7 +2452,7 @@ msgstr "Ne pas montrer la fenêtre de sortie des commandes"
|
||||
|
||||
#: lib/tools_dlg.tcl:97
|
||||
msgid "Run only if a diff is selected ($FILENAME not empty)"
|
||||
msgstr "Lancer seulement si un diff est selectionné ($FILENAME non vide)"
|
||||
msgstr "Lancer seulement si un diff est sélectionné ($FILENAME non vide)"
|
||||
|
||||
#: lib/tools_dlg.tcl:121
|
||||
msgid "Please supply a name for the tool."
|
||||
@@ -2479,7 +2469,7 @@ msgid ""
|
||||
"Could not add tool:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Impossible d'ajouter l'outil:\n"
|
||||
"Impossible d'ajouter l'outil :\n"
|
||||
"%s"
|
||||
|
||||
#: lib/tools_dlg.tcl:190
|
||||
|
||||
@@ -753,13 +753,6 @@ msgstr ""
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
@@ -2220,7 +2213,7 @@ msgstr ""
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
|
||||
@@ -776,16 +776,6 @@ msgstr "Mindig (Ne legyen merge teszt.)"
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "A következő branchek nem teljesen lettek merge-ölve ebbe: %s:"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"A törölt branchek visszaállítása bonyolult. \n"
|
||||
"\n"
|
||||
" Biztosan törli a kiválasztott brancheket?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
@@ -2399,7 +2389,7 @@ msgstr "Futtatás: %s..."
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr "Az eszköz sikeresen befejeződött: %s"
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
|
||||
@@ -778,16 +778,6 @@ msgstr "Sempre (Non effettuare verifiche di fusione)."
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "I rami seguenti non sono stati fusi completamente in %s:"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"Ricomporre rami cancellati può essere complicato. \n"
|
||||
"\n"
|
||||
" Eliminare i rami selezionati?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
@@ -2418,7 +2408,7 @@ msgstr "Eseguo: %s"
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr "Il programma esterno è terminato con successo: %s"
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
|
||||
@@ -773,16 +773,6 @@ msgstr "無条件(マージテストしない)"
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "以下のブランチは %s に完全にマージされていません:"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"ブランチを削除すると元に戻すのは困難です。 \n"
|
||||
"\n"
|
||||
" 選択したブランチを削除しますか?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
@@ -2382,7 +2372,7 @@ msgstr "実行中: %s"
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr "ツールが完了しました: %s"
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
|
||||
@@ -761,16 +761,6 @@ msgstr "Alltid (Ikke utfør sammenslåingstest.)"
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "Følgende grener er ikke fullstendig slått sammen med %s:"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"Gjenoppretting av fjernede grener er vanskelig. \n"
|
||||
"\n"
|
||||
" Fjern valgte grener?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
@@ -2331,7 +2321,7 @@ msgstr "Kjører: %s"
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr "Verktøyet ble fullført med suksess: %s"
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
|
||||
1428
git-gui/po/ru.po
1428
git-gui/po/ru.po
File diff suppressed because it is too large
Load Diff
@@ -780,16 +780,6 @@ msgstr "Alltid (utför inte sammanslagningstest)."
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "Följande grenar är inte till fullo sammanslagna med %s:"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"Det är svårt att återställa borttagna grenar.\n"
|
||||
"\n"
|
||||
" Ta bort valda grenar?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
@@ -2398,7 +2388,7 @@ msgstr "Exekverar: %s"
|
||||
|
||||
#: lib/tools.tcl:149
|
||||
#, tcl-format
|
||||
msgid "Tool completed succesfully: %s"
|
||||
msgid "Tool completed successfully: %s"
|
||||
msgstr "Verktyget avslutades framgångsrikt: %s"
|
||||
|
||||
#: lib/tools.tcl:151
|
||||
|
||||
@@ -676,16 +676,6 @@ msgstr "总是合并 (不作合并测试.)"
|
||||
msgid "The following branches are not completely merged into %s:"
|
||||
msgstr "下列分支没有完全被合并到 %s:"
|
||||
|
||||
#: lib/branch_delete.tcl:115
|
||||
msgid ""
|
||||
"Recovering deleted branches is difficult. \n"
|
||||
"\n"
|
||||
" Delete the selected branches?"
|
||||
msgstr ""
|
||||
"恢复被删除的分支非常困难.\n"
|
||||
"\n"
|
||||
"是否要删除所选分支?"
|
||||
|
||||
#: lib/branch_delete.tcl:141
|
||||
#, tcl-format
|
||||
msgid ""
|
||||
|
||||
@@ -3,7 +3,12 @@
|
||||
exec wish "$0" -- "$@"
|
||||
|
||||
if { $argc >=2 && [lindex $argv 0] == "--working-dir" } {
|
||||
cd [lindex $argv 1]
|
||||
set workdir [lindex $argv 1]
|
||||
cd $workdir
|
||||
if {[lindex [file split $workdir] end] eq {.git}} {
|
||||
# Workaround for Explorer right click "Git GUI Here" on .git/
|
||||
cd ..
|
||||
}
|
||||
set argv [lrange $argv 2 end]
|
||||
incr argc -2
|
||||
}
|
||||
|
||||
8
git.c
8
git.c
@@ -47,7 +47,7 @@ static void commit_pager_choice(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static int handle_options(const char*** argv, int* argc, int* envchanged)
|
||||
static int handle_options(const char ***argv, int *argc, int *envchanged)
|
||||
{
|
||||
int handled = 0;
|
||||
|
||||
@@ -136,7 +136,7 @@ static int handle_alias(int *argcp, const char ***argv)
|
||||
int envchanged = 0, ret = 0, saved_errno = errno;
|
||||
const char *subdir;
|
||||
int count, option_count;
|
||||
const char** new_argv;
|
||||
const char **new_argv;
|
||||
const char *alias_command;
|
||||
char *alias_string;
|
||||
int unused_nongit;
|
||||
@@ -187,10 +187,10 @@ static int handle_alias(int *argcp, const char ***argv)
|
||||
"trace: alias expansion: %s =>",
|
||||
alias_command);
|
||||
|
||||
new_argv = xrealloc(new_argv, sizeof(char*) *
|
||||
new_argv = xrealloc(new_argv, sizeof(char *) *
|
||||
(count + *argcp + 1));
|
||||
/* insert after command name */
|
||||
memcpy(new_argv + count, *argv + 1, sizeof(char*) * *argcp);
|
||||
memcpy(new_argv + count, *argv + 1, sizeof(char *) * *argcp);
|
||||
new_argv[count+*argcp] = NULL;
|
||||
|
||||
*argv = new_argv;
|
||||
|
||||
321
gitk-git/gitk
321
gitk-git/gitk
@@ -521,7 +521,7 @@ proc updatecommits {} {
|
||||
incr viewactive($view)
|
||||
set viewcomplete($view) 0
|
||||
reset_pending_select {}
|
||||
nowbusy $view "Reading"
|
||||
nowbusy $view [mc "Reading"]
|
||||
if {$showneartags} {
|
||||
getallcommits
|
||||
}
|
||||
@@ -1830,7 +1830,9 @@ proc setoptions {} {
|
||||
option add *Button.font uifont startupFile
|
||||
option add *Checkbutton.font uifont startupFile
|
||||
option add *Radiobutton.font uifont startupFile
|
||||
option add *Menu.font uifont startupFile
|
||||
if {[tk windowingsystem] ne "aqua"} {
|
||||
option add *Menu.font uifont startupFile
|
||||
}
|
||||
option add *Menubutton.font uifont startupFile
|
||||
option add *Label.font uifont startupFile
|
||||
option add *Message.font uifont startupFile
|
||||
@@ -1910,8 +1912,8 @@ proc makewindow {} {
|
||||
|
||||
# The "mc" arguments here are purely so that xgettext
|
||||
# sees the following string as needing to be translated
|
||||
makemenu .bar {
|
||||
{mc "File" cascade {
|
||||
set file {
|
||||
mc "File" cascade {
|
||||
{mc "Update" command updatecommits -accelerator F5}
|
||||
{mc "Reload" command reloadcommits -accelerator Meta1-F5}
|
||||
{mc "Reread references" command rereadrefs}
|
||||
@@ -1921,21 +1923,41 @@ proc makewindow {} {
|
||||
{xx "" separator}
|
||||
{mc "Quit" command doquit -accelerator Meta1-Q}
|
||||
}}
|
||||
{mc "Edit" cascade {
|
||||
set edit {
|
||||
mc "Edit" cascade {
|
||||
{mc "Preferences" command doprefs}
|
||||
}}
|
||||
{mc "View" cascade {
|
||||
set view {
|
||||
mc "View" cascade {
|
||||
{mc "New view..." command {newview 0} -accelerator Shift-F4}
|
||||
{mc "Edit view..." command editview -state disabled -accelerator F4}
|
||||
{mc "Delete view" command delview -state disabled}
|
||||
{xx "" separator}
|
||||
{mc "All files" radiobutton {selectedview 0} -command {showview 0}}
|
||||
}}
|
||||
{mc "Help" cascade {
|
||||
if {[tk windowingsystem] ne "aqua"} {
|
||||
set help {
|
||||
mc "Help" cascade {
|
||||
{mc "About gitk" command about}
|
||||
{mc "Key bindings" command keys}
|
||||
}}
|
||||
set bar [list $file $edit $view $help]
|
||||
} else {
|
||||
proc ::tk::mac::ShowPreferences {} {doprefs}
|
||||
proc ::tk::mac::Quit {} {doquit}
|
||||
lset file end [lreplace [lindex $file end] end-1 end]
|
||||
set apple {
|
||||
xx "Apple" cascade {
|
||||
{mc "About gitk" command about}
|
||||
{xx "" separator}
|
||||
}}
|
||||
set help {
|
||||
mc "Help" cascade {
|
||||
{mc "Key bindings" command keys}
|
||||
}}
|
||||
set bar [list $apple $file $view $help]
|
||||
}
|
||||
makemenu .bar $bar
|
||||
. configure -menu .bar
|
||||
|
||||
# the gui has upper and lower half, parts of a paned window.
|
||||
@@ -2229,10 +2251,16 @@ proc makewindow {} {
|
||||
}
|
||||
}
|
||||
|
||||
if {[info exists geometry(state)] && $geometry(state) eq "zoomed"} {
|
||||
wm state . $geometry(state)
|
||||
}
|
||||
|
||||
if {[tk windowingsystem] eq {aqua}} {
|
||||
set M1B M1
|
||||
set ::BM "3"
|
||||
} else {
|
||||
set M1B Control
|
||||
set ::BM "2"
|
||||
}
|
||||
|
||||
bind .pwbottom <Configure> {resizecdetpanes %W %w}
|
||||
@@ -2250,10 +2278,14 @@ proc makewindow {} {
|
||||
set delta [expr {- (%D)}]
|
||||
allcanvs yview scroll $delta units
|
||||
}
|
||||
bindall <Shift-MouseWheel> {
|
||||
set delta [expr {- (%D)}]
|
||||
$canv xview scroll $delta units
|
||||
}
|
||||
}
|
||||
}
|
||||
bindall <2> "canvscan mark %W %x %y"
|
||||
bindall <B2-Motion> "canvscan dragto %W %x %y"
|
||||
bindall <$::BM> "canvscan mark %W %x %y"
|
||||
bindall <B$::BM-Motion> "canvscan dragto %W %x %y"
|
||||
bindkey <Home> selfirstline
|
||||
bindkey <End> sellastline
|
||||
bind . <Key-Up> "selnextline -1"
|
||||
@@ -2285,6 +2317,7 @@ proc makewindow {} {
|
||||
bindkey d "$ctext yview scroll 18 units"
|
||||
bindkey u "$ctext yview scroll -18 units"
|
||||
bindkey / {focus $fstring}
|
||||
bindkey <Key-KP_Divide> {focus $fstring}
|
||||
bindkey <Key-Return> {dofind 1 1}
|
||||
bindkey ? {dofind -1 1}
|
||||
bindkey f nextfile
|
||||
@@ -2331,6 +2364,10 @@ proc makewindow {} {
|
||||
{mc "Create new branch" command mkbranch}
|
||||
{mc "Cherry-pick this commit" command cherrypick}
|
||||
{mc "Reset HEAD branch to here" command resethead}
|
||||
{mc "Mark this commit" command markhere}
|
||||
{mc "Return to mark" command gotomark}
|
||||
{mc "Find descendant of this and mark" command find_common_desc}
|
||||
{mc "Compare with marked commit" command compare_commits}
|
||||
}
|
||||
$rowctxmenu configure -tearoff 0
|
||||
|
||||
@@ -2487,6 +2524,9 @@ proc savestuff {w} {
|
||||
if {![winfo viewable .]} return
|
||||
catch {
|
||||
set f [open "~/.gitk-new" w]
|
||||
if {$::tcl_platform(platform) eq {windows}} {
|
||||
file attributes "~/.gitk-new" -hidden true
|
||||
}
|
||||
puts $f [list set mainfont $mainfont]
|
||||
puts $f [list set textfont $textfont]
|
||||
puts $f [list set uifont $uifont]
|
||||
@@ -2512,6 +2552,7 @@ proc savestuff {w} {
|
||||
puts $f [list set perfile_attrs $perfile_attrs]
|
||||
|
||||
puts $f "set geometry(main) [wm geometry .]"
|
||||
puts $f "set geometry(state) [wm state .]"
|
||||
puts $f "set geometry(topwidth) [winfo width .tf]"
|
||||
puts $f "set geometry(topheight) [winfo height .tf]"
|
||||
puts $f "set geometry(pwsash0) \"[.tf.histframe.pwclist sash coord 0]\""
|
||||
@@ -3205,9 +3246,8 @@ proc external_diff {} {
|
||||
set difftofile [external_diff_get_one_file $diffidto $flist_menu_file $diffdir]
|
||||
|
||||
if {$difffromfile ne {} && $difftofile ne {}} {
|
||||
set cmd [concat | [shellsplit $extdifftool] \
|
||||
[list $difffromfile $difftofile]]
|
||||
if {[catch {set fl [open $cmd r]} err]} {
|
||||
set cmd [list [shellsplit $extdifftool] $difffromfile $difftofile]
|
||||
if {[catch {set fl [open |$cmd r]} err]} {
|
||||
file delete -force $diffdir
|
||||
error_popup "$extdifftool: [mc "command failed:"] $err"
|
||||
} else {
|
||||
@@ -3738,7 +3778,7 @@ proc editview {} {
|
||||
set newviewopts($curview,perm) $viewperm($curview)
|
||||
set newviewopts($curview,cmd) $viewargscmd($curview)
|
||||
decode_view_opts $curview $viewargs($curview)
|
||||
vieweditor $top $curview "Gitk: edit view $viewname($curview)"
|
||||
vieweditor $top $curview "[mc "Gitk: edit view"] $viewname($curview)"
|
||||
}
|
||||
|
||||
proc vieweditor {top n title} {
|
||||
@@ -4047,7 +4087,7 @@ proc ishighlighted {id} {
|
||||
}
|
||||
|
||||
proc bolden {id font} {
|
||||
global canv linehtag currentid boldids need_redisplay
|
||||
global canv linehtag currentid boldids need_redisplay markedid
|
||||
|
||||
# need_redisplay = 1 means the display is stale and about to be redrawn
|
||||
if {$need_redisplay} return
|
||||
@@ -4060,6 +4100,9 @@ proc bolden {id font} {
|
||||
-fill [$canv cget -selectbackground]]
|
||||
$canv lower $t
|
||||
}
|
||||
if {[info exists markedid] && $id eq $markedid} {
|
||||
make_idmark $id
|
||||
}
|
||||
}
|
||||
|
||||
proc bolden_name {id font} {
|
||||
@@ -5564,7 +5607,7 @@ proc drawcmittext {id row col} {
|
||||
global cmitlisted commitinfo rowidlist parentlist
|
||||
global rowtextx idpos idtags idheads idotherrefs
|
||||
global linehtag linentag linedtag selectedline
|
||||
global canvxmax boldids boldnameids fgcolor
|
||||
global canvxmax boldids boldnameids fgcolor markedid
|
||||
global mainheadid nullid nullid2 circleitem circlecolors ctxbut
|
||||
|
||||
# listed is 0 for boundary, 1 for normal, 2 for negative, 3 for left, 4 for right
|
||||
@@ -5646,6 +5689,9 @@ proc drawcmittext {id row col} {
|
||||
if {$selectedline == $row} {
|
||||
make_secsel $id
|
||||
}
|
||||
if {[info exists markedid] && $markedid eq $id} {
|
||||
make_idmark $id
|
||||
}
|
||||
set xr [expr {$xt + [font measure $font $headline]}]
|
||||
if {$xr > $canvxmax} {
|
||||
set canvxmax $xr
|
||||
@@ -6444,6 +6490,17 @@ proc setlink {id lk} {
|
||||
}
|
||||
}
|
||||
|
||||
proc appendshortlink {id {pre {}} {post {}}} {
|
||||
global ctext linknum
|
||||
|
||||
$ctext insert end $pre
|
||||
$ctext tag delete link$linknum
|
||||
$ctext insert end [string range $id 0 7] link$linknum
|
||||
$ctext insert end $post
|
||||
setlink $id link$linknum
|
||||
incr linknum
|
||||
}
|
||||
|
||||
proc makelink {id} {
|
||||
global pendinglinks
|
||||
|
||||
@@ -6500,7 +6557,7 @@ proc appendrefs {pos ids var} {
|
||||
}
|
||||
}
|
||||
if {[llength $tags] > $maxrefs} {
|
||||
$ctext insert $pos "many ([llength $tags])"
|
||||
$ctext insert $pos "[mc "many"] ([llength $tags])"
|
||||
} else {
|
||||
set tags [lsort -index 0 -decreasing $tags]
|
||||
set sep {}
|
||||
@@ -6587,6 +6644,16 @@ proc make_secsel {id} {
|
||||
$canv3 lower $t
|
||||
}
|
||||
|
||||
proc make_idmark {id} {
|
||||
global linehtag canv fgcolor
|
||||
|
||||
if {![info exists linehtag($id)]} return
|
||||
$canv delete markid
|
||||
set t [eval $canv create rect [$canv bbox $linehtag($id)] \
|
||||
-tags markid -outline $fgcolor]
|
||||
$canv raise $t
|
||||
}
|
||||
|
||||
proc selectline {l isnew {desired_loc {}}} {
|
||||
global canv ctext commitinfo selectedline
|
||||
global canvy0 linespc parents children curview
|
||||
@@ -7217,7 +7284,7 @@ proc getblobdiffs {ids} {
|
||||
set diffnparents 0
|
||||
set diffinhdr 0
|
||||
set diffencoding [get_path_encoding {}]
|
||||
fconfigure $bdf -blocking 0 -encoding binary
|
||||
fconfigure $bdf -blocking 0 -encoding binary -eofchar {}
|
||||
set blobdifffd($ids) $bdf
|
||||
filerun $bdf [list getblobdiffline $bdf $diffids]
|
||||
}
|
||||
@@ -7368,7 +7435,8 @@ proc getblobdiffline {bdf ids} {
|
||||
$ctext insert end "$line\n" filesep
|
||||
|
||||
} else {
|
||||
set line [encoding convertfrom $diffencoding $line]
|
||||
set line [string map {\x1A ^Z} \
|
||||
[encoding convertfrom $diffencoding $line]]
|
||||
# parse the prefix - one ' ', '-' or '+' for each parent
|
||||
set prefix [string range $line 0 [expr {$diffnparents - 1}]]
|
||||
set tag [expr {$diffnparents > 1? "m": "d"}]
|
||||
@@ -7971,7 +8039,7 @@ proc mstime {} {
|
||||
|
||||
proc rowmenu {x y id} {
|
||||
global rowctxmenu selectedline rowmenuid curview
|
||||
global nullid nullid2 fakerowmenu mainhead
|
||||
global nullid nullid2 fakerowmenu mainhead markedid
|
||||
|
||||
stopfinding
|
||||
set rowmenuid $id
|
||||
@@ -7987,6 +8055,15 @@ proc rowmenu {x y id} {
|
||||
} else {
|
||||
$menu entryconfigure 7 -label [mc "Detached head: can't reset" $mainhead] -state disabled
|
||||
}
|
||||
if {[info exists markedid] && $markedid ne $id} {
|
||||
$menu entryconfigure 9 -state normal
|
||||
$menu entryconfigure 10 -state normal
|
||||
$menu entryconfigure 11 -state normal
|
||||
} else {
|
||||
$menu entryconfigure 9 -state disabled
|
||||
$menu entryconfigure 10 -state disabled
|
||||
$menu entryconfigure 11 -state disabled
|
||||
}
|
||||
} else {
|
||||
set menu $fakerowmenu
|
||||
}
|
||||
@@ -7996,6 +8073,162 @@ proc rowmenu {x y id} {
|
||||
tk_popup $menu $x $y
|
||||
}
|
||||
|
||||
proc markhere {} {
|
||||
global rowmenuid markedid canv
|
||||
|
||||
set markedid $rowmenuid
|
||||
make_idmark $markedid
|
||||
}
|
||||
|
||||
proc gotomark {} {
|
||||
global markedid
|
||||
|
||||
if {[info exists markedid]} {
|
||||
selbyid $markedid
|
||||
}
|
||||
}
|
||||
|
||||
proc replace_by_kids {l r} {
|
||||
global curview children
|
||||
|
||||
set id [commitonrow $r]
|
||||
set l [lreplace $l 0 0]
|
||||
foreach kid $children($curview,$id) {
|
||||
lappend l [rowofcommit $kid]
|
||||
}
|
||||
return [lsort -integer -decreasing -unique $l]
|
||||
}
|
||||
|
||||
proc find_common_desc {} {
|
||||
global markedid rowmenuid curview children
|
||||
|
||||
if {![info exists markedid]} return
|
||||
if {![commitinview $markedid $curview] ||
|
||||
![commitinview $rowmenuid $curview]} return
|
||||
#set t1 [clock clicks -milliseconds]
|
||||
set l1 [list [rowofcommit $markedid]]
|
||||
set l2 [list [rowofcommit $rowmenuid]]
|
||||
while 1 {
|
||||
set r1 [lindex $l1 0]
|
||||
set r2 [lindex $l2 0]
|
||||
if {$r1 eq {} || $r2 eq {}} break
|
||||
if {$r1 == $r2} {
|
||||
selectline $r1 1
|
||||
break
|
||||
}
|
||||
if {$r1 > $r2} {
|
||||
set l1 [replace_by_kids $l1 $r1]
|
||||
} else {
|
||||
set l2 [replace_by_kids $l2 $r2]
|
||||
}
|
||||
}
|
||||
#set t2 [clock clicks -milliseconds]
|
||||
#puts "took [expr {$t2-$t1}]ms"
|
||||
}
|
||||
|
||||
proc compare_commits {} {
|
||||
global markedid rowmenuid curview children
|
||||
|
||||
if {![info exists markedid]} return
|
||||
if {![commitinview $markedid $curview]} return
|
||||
addtohistory [list do_cmp_commits $markedid $rowmenuid]
|
||||
do_cmp_commits $markedid $rowmenuid
|
||||
}
|
||||
|
||||
proc getpatchid {id} {
|
||||
global patchids
|
||||
|
||||
if {![info exists patchids($id)]} {
|
||||
set cmd [diffcmd [list $id] {-p --root}]
|
||||
# trim off the initial "|"
|
||||
set cmd [lrange $cmd 1 end]
|
||||
if {[catch {
|
||||
set x [eval exec $cmd | git patch-id]
|
||||
set patchids($id) [lindex $x 0]
|
||||
}]} {
|
||||
set patchids($id) "error"
|
||||
}
|
||||
}
|
||||
return $patchids($id)
|
||||
}
|
||||
|
||||
proc do_cmp_commits {a b} {
|
||||
global ctext curview parents children patchids commitinfo
|
||||
|
||||
$ctext conf -state normal
|
||||
clear_ctext
|
||||
init_flist {}
|
||||
for {set i 0} {$i < 100} {incr i} {
|
||||
set skipa 0
|
||||
set skipb 0
|
||||
if {[llength $parents($curview,$a)] > 1} {
|
||||
appendshortlink $a [mc "Skipping merge commit "] "\n"
|
||||
set skipa 1
|
||||
} else {
|
||||
set patcha [getpatchid $a]
|
||||
}
|
||||
if {[llength $parents($curview,$b)] > 1} {
|
||||
appendshortlink $b [mc "Skipping merge commit "] "\n"
|
||||
set skipb 1
|
||||
} else {
|
||||
set patchb [getpatchid $b]
|
||||
}
|
||||
if {!$skipa && !$skipb} {
|
||||
set heada [lindex $commitinfo($a) 0]
|
||||
set headb [lindex $commitinfo($b) 0]
|
||||
if {$patcha eq "error"} {
|
||||
appendshortlink $a [mc "Error getting patch ID for "] \
|
||||
[mc " - stopping\n"]
|
||||
break
|
||||
}
|
||||
if {$patchb eq "error"} {
|
||||
appendshortlink $b [mc "Error getting patch ID for "] \
|
||||
[mc " - stopping\n"]
|
||||
break
|
||||
}
|
||||
if {$patcha eq $patchb} {
|
||||
if {$heada eq $headb} {
|
||||
appendshortlink $a [mc "Commit "]
|
||||
appendshortlink $b " == " " $heada\n"
|
||||
} else {
|
||||
appendshortlink $a [mc "Commit "] " $heada\n"
|
||||
appendshortlink $b [mc " is the same patch as\n "] \
|
||||
" $headb\n"
|
||||
}
|
||||
set skipa 1
|
||||
set skipb 1
|
||||
} else {
|
||||
$ctext insert end "\n"
|
||||
appendshortlink $a [mc "Commit "] " $heada\n"
|
||||
appendshortlink $b [mc " differs from\n "] \
|
||||
" $headb\n"
|
||||
$ctext insert end [mc "- stopping\n"]
|
||||
break
|
||||
}
|
||||
}
|
||||
if {$skipa} {
|
||||
if {[llength $children($curview,$a)] != 1} {
|
||||
$ctext insert end "\n"
|
||||
appendshortlink $a [mc "Commit "] \
|
||||
[mc " has %s children - stopping\n" \
|
||||
[llength $children($curview,$a)]]
|
||||
break
|
||||
}
|
||||
set a [lindex $children($curview,$a) 0]
|
||||
}
|
||||
if {$skipb} {
|
||||
if {[llength $children($curview,$b)] != 1} {
|
||||
appendshortlink $b [mc "Commit "] \
|
||||
[mc " has %s children - stopping\n" \
|
||||
[llength $children($curview,$b)]]
|
||||
break
|
||||
}
|
||||
set b [lindex $children($curview,$b) 0]
|
||||
}
|
||||
}
|
||||
$ctext conf -state disabled
|
||||
}
|
||||
|
||||
proc diffvssel {dirn} {
|
||||
global rowmenuid selectedline
|
||||
|
||||
@@ -8190,7 +8423,7 @@ proc domktag {} {
|
||||
}
|
||||
|
||||
proc redrawtags {id} {
|
||||
global canv linehtag idpos currentid curview cmitlisted
|
||||
global canv linehtag idpos currentid curview cmitlisted markedid
|
||||
global canvxmax iddrawn circleitem mainheadid circlecolors
|
||||
|
||||
if {![commitinview $id $curview]} return
|
||||
@@ -8215,6 +8448,9 @@ proc redrawtags {id} {
|
||||
if {[info exists currentid] && $currentid == $id} {
|
||||
make_secsel $id
|
||||
}
|
||||
if {[info exists markedid] && $markedid eq $id} {
|
||||
make_idmark $id
|
||||
}
|
||||
}
|
||||
|
||||
proc mktagcan {} {
|
||||
@@ -10198,7 +10434,7 @@ proc doprefs {} {
|
||||
proc choose_extdiff {} {
|
||||
global extdifftool
|
||||
|
||||
set prog [tk_getOpenFile -title "External diff tool" -multiple false]
|
||||
set prog [tk_getOpenFile -title [mc "External diff tool"] -multiple false]
|
||||
if {$prog ne {}} {
|
||||
set extdifftool $prog
|
||||
}
|
||||
@@ -10241,6 +10477,7 @@ proc setfg {c} {
|
||||
}
|
||||
allcanvs itemconf text -fill $c
|
||||
$canv itemconf circle -outline $c
|
||||
$canv itemconf markid -outline $c
|
||||
}
|
||||
|
||||
proc prefscan {} {
|
||||
@@ -10690,9 +10927,15 @@ catch {
|
||||
}
|
||||
}
|
||||
|
||||
set mainfont {Helvetica 9}
|
||||
set textfont {Courier 9}
|
||||
set uifont {Helvetica 9 bold}
|
||||
if {[tk windowingsystem] eq "aqua"} {
|
||||
set mainfont {{Lucida Grande} 9}
|
||||
set textfont {Monaco 9}
|
||||
set uifont {{Lucida Grande} 9 bold}
|
||||
} else {
|
||||
set mainfont {Helvetica 9}
|
||||
set textfont {Courier 9}
|
||||
set uifont {Helvetica 9 bold}
|
||||
}
|
||||
set tabstop 8
|
||||
set findmergefiles 0
|
||||
set maxgraphpct 50
|
||||
@@ -10713,7 +10956,11 @@ set datetimeformat "%Y-%m-%d %H:%M:%S"
|
||||
set autoselect 1
|
||||
set perfile_attrs 0
|
||||
|
||||
set extdifftool "meld"
|
||||
if {[tk windowingsystem] eq "aqua"} {
|
||||
set extdifftool "opendiff"
|
||||
} else {
|
||||
set extdifftool "meld"
|
||||
}
|
||||
|
||||
set colors {green red blue magenta darkgrey brown orange}
|
||||
set bgcolor white
|
||||
@@ -10884,9 +11131,33 @@ set lserial 0
|
||||
set isworktree [expr {[exec git rev-parse --is-inside-work-tree] == "true"}]
|
||||
setcoords
|
||||
makewindow
|
||||
catch {
|
||||
image create photo gitlogo -width 16 -height 16
|
||||
|
||||
image create photo gitlogominus -width 4 -height 2
|
||||
gitlogominus put #C00000 -to 0 0 4 2
|
||||
gitlogo copy gitlogominus -to 1 5
|
||||
gitlogo copy gitlogominus -to 6 5
|
||||
gitlogo copy gitlogominus -to 11 5
|
||||
image delete gitlogominus
|
||||
|
||||
image create photo gitlogoplus -width 4 -height 4
|
||||
gitlogoplus put #008000 -to 1 0 3 4
|
||||
gitlogoplus put #008000 -to 0 1 4 3
|
||||
gitlogo copy gitlogoplus -to 1 9
|
||||
gitlogo copy gitlogoplus -to 6 9
|
||||
gitlogo copy gitlogoplus -to 11 9
|
||||
image delete gitlogoplus
|
||||
|
||||
image create photo gitlogo32 -width 32 -height 32
|
||||
gitlogo32 copy gitlogo -zoom 2 2
|
||||
|
||||
wm iconphoto . -default gitlogo gitlogo32
|
||||
}
|
||||
# wait for the window to become visible
|
||||
tkwait visibility .
|
||||
wm title . "[file tail $argv0]: [file tail [pwd]]"
|
||||
update
|
||||
readrefs
|
||||
|
||||
if {$cmdline_files ne {} || $revtreeargs ne {} || $revtreeargscmd ne {}} {
|
||||
|
||||
1085
gitk-git/po/ru.po
Normal file
1085
gitk-git/po/ru.po
Normal file
File diff suppressed because it is too large
Load Diff
8
grep.c
8
grep.c
@@ -72,6 +72,8 @@ static struct grep_expr *compile_pattern_atom(struct grep_pat **list)
|
||||
struct grep_expr *x;
|
||||
|
||||
p = *list;
|
||||
if (!p)
|
||||
return NULL;
|
||||
switch (p->token) {
|
||||
case GREP_PATTERN: /* atom */
|
||||
case GREP_PATTERN_HEAD:
|
||||
@@ -84,8 +86,6 @@ static struct grep_expr *compile_pattern_atom(struct grep_pat **list)
|
||||
case GREP_OPEN_PAREN:
|
||||
*list = p->next;
|
||||
x = compile_pattern_or(list);
|
||||
if (!x)
|
||||
return NULL;
|
||||
if (!*list || (*list)->token != GREP_CLOSE_PAREN)
|
||||
die("unmatched parenthesis");
|
||||
*list = (*list)->next;
|
||||
@@ -101,6 +101,8 @@ static struct grep_expr *compile_pattern_not(struct grep_pat **list)
|
||||
struct grep_expr *x;
|
||||
|
||||
p = *list;
|
||||
if (!p)
|
||||
return NULL;
|
||||
switch (p->token) {
|
||||
case GREP_NOT:
|
||||
if (!p->next)
|
||||
@@ -372,6 +374,8 @@ static int match_expr_eval(struct grep_expr *x, char *bol, char *eol,
|
||||
int h = 0;
|
||||
regmatch_t match;
|
||||
|
||||
if (!x)
|
||||
die("Not a valid grep expression");
|
||||
switch (x->node) {
|
||||
case GREP_NODE_ATOM:
|
||||
h = match_one_pattern(x->u.atom, bol, eol, ctx, &match, 0);
|
||||
|
||||
@@ -109,7 +109,7 @@ static char *resolve_symlink(char *p, size_t s)
|
||||
* link is a relative path, so I must replace the
|
||||
* last element of p with it.
|
||||
*/
|
||||
char *r = (char*)last_path_elm(p);
|
||||
char *r = (char *)last_path_elm(p);
|
||||
if (r - p + link_len < s)
|
||||
strcpy(r, link);
|
||||
else {
|
||||
|
||||
@@ -520,8 +520,12 @@ static void update_file_flags(struct merge_options *o,
|
||||
unsigned long size;
|
||||
|
||||
if (S_ISGITLINK(mode))
|
||||
die("cannot read object %s '%s': It is a submodule!",
|
||||
sha1_to_hex(sha), path);
|
||||
/*
|
||||
* We may later decide to recursively descend into
|
||||
* the submodule directory and update its index
|
||||
* and/or work tree, but we do not do that now.
|
||||
*/
|
||||
goto update_index;
|
||||
|
||||
buf = read_sha1_file(sha, &type, &size);
|
||||
if (!buf)
|
||||
|
||||
@@ -241,7 +241,7 @@ void fake_reflog_parent(struct reflog_walk_info *info, struct commit *commit)
|
||||
commit->object.flags &= ~(ADDED | SEEN | SHOWN);
|
||||
}
|
||||
|
||||
void show_reflog_message(struct reflog_walk_info* info, int oneline,
|
||||
void show_reflog_message(struct reflog_walk_info *info, int oneline,
|
||||
enum date_mode dmode)
|
||||
{
|
||||
if (info && info->last_commit_reflog) {
|
||||
|
||||
@@ -106,7 +106,7 @@ int start_command(struct child_process *cmd)
|
||||
if (cmd->env) {
|
||||
for (; *cmd->env; cmd->env++) {
|
||||
if (strchr(*cmd->env, '='))
|
||||
putenv((char*)*cmd->env);
|
||||
putenv((char *)*cmd->env);
|
||||
else
|
||||
unsetenv(*cmd->env);
|
||||
}
|
||||
|
||||
@@ -132,8 +132,8 @@ static int read_pack_info_file(const char *infofile)
|
||||
|
||||
static int compare_info(const void *a_, const void *b_)
|
||||
{
|
||||
struct pack_info * const* a = a_;
|
||||
struct pack_info * const* b = b_;
|
||||
struct pack_info *const *a = a_;
|
||||
struct pack_info *const *b = b_;
|
||||
|
||||
if (0 <= (*a)->old_num && 0 <= (*b)->old_num)
|
||||
/* Keep the order in the original */
|
||||
|
||||
@@ -791,7 +791,7 @@ static int in_window(struct pack_window *win, off_t offset)
|
||||
&& (offset + 20) <= (win_off + win->len);
|
||||
}
|
||||
|
||||
unsigned char* use_pack(struct packed_git *p,
|
||||
unsigned char *use_pack(struct packed_git *p,
|
||||
struct pack_window **w_cursor,
|
||||
off_t offset,
|
||||
unsigned int *left)
|
||||
@@ -2225,7 +2225,7 @@ int move_temp_to_file(const char *tmpfile, const char *filename)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (unreliable_hardlinks)
|
||||
if (object_creation_mode == OBJECT_CREATION_USES_RENAMES)
|
||||
goto try_rename;
|
||||
else if (link(tmpfile, filename))
|
||||
ret = errno;
|
||||
|
||||
@@ -57,4 +57,43 @@ test_expect_success 'git diff (empty submodule dir)' '
|
||||
test_cmp empty actual.empty
|
||||
'
|
||||
|
||||
test_expect_success 'conflicted submodule setup' '
|
||||
|
||||
# 39 efs
|
||||
c=fffffffffffffffffffffffffffffffffffffff
|
||||
(
|
||||
echo "000000 $_z40 0 sub"
|
||||
echo "160000 1$c 1 sub"
|
||||
echo "160000 2$c 2 sub"
|
||||
echo "160000 3$c 3 sub"
|
||||
) | git update-index --index-info &&
|
||||
echo >expect.nosub '\''diff --cc sub
|
||||
index 2ffffff,3ffffff..0000000
|
||||
--- a/sub
|
||||
+++ b/sub
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
- Subproject commit 2fffffffffffffffffffffffffffffffffffffff
|
||||
-Subproject commit 3fffffffffffffffffffffffffffffffffffffff
|
||||
++Subproject commit 0000000000000000000000000000000000000000'\'' &&
|
||||
|
||||
hh=$(git rev-parse HEAD) &&
|
||||
sed -e "s/$_z40/$hh/" expect.nosub >expect.withsub
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'combined (empty submodule)' '
|
||||
rm -fr sub && mkdir sub &&
|
||||
git diff >actual &&
|
||||
test_cmp expect.nosub actual
|
||||
'
|
||||
|
||||
test_expect_success 'combined (with submodule)' '
|
||||
rm -fr sub &&
|
||||
git clone --no-checkout . sub &&
|
||||
git diff >actual &&
|
||||
test_cmp expect.withsub actual
|
||||
'
|
||||
|
||||
|
||||
|
||||
test_done
|
||||
|
||||
@@ -342,7 +342,7 @@ cat > expect <<\EOF
|
||||
* initial
|
||||
EOF
|
||||
|
||||
test_expect_sucess 'log --graph with merge' '
|
||||
test_expect_success 'log --graph with merge' '
|
||||
git log --graph --date-order --pretty=tformat:%s |
|
||||
sed "s/ *$//" >actual &&
|
||||
test_cmp expect actual
|
||||
|
||||
@@ -138,8 +138,8 @@ test_expect_success 'clone empty repository, and then push should not segfault.'
|
||||
mkdir empty &&
|
||||
(cd empty && git init) &&
|
||||
git clone empty empty-clone &&
|
||||
cd empty-clone &&
|
||||
test_must_fail git push
|
||||
(cd empty-clone &&
|
||||
test_must_fail git push)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -26,6 +26,10 @@ test_expect_success setup '
|
||||
git commit -m initial
|
||||
'
|
||||
|
||||
test_expect_success 'grep should not segfault with a bad input' '
|
||||
test_must_fail git grep "("
|
||||
'
|
||||
|
||||
for H in HEAD ''
|
||||
do
|
||||
case "$H" in
|
||||
|
||||
@@ -54,13 +54,13 @@ test_expect_success setup '
|
||||
git merge -s ours a
|
||||
'
|
||||
|
||||
test_expect_failure 'merging with modify/modify conflict' '
|
||||
test_expect_success 'merging with modify/modify conflict' '
|
||||
|
||||
git checkout -b test1 a &&
|
||||
test_must_fail git merge b &&
|
||||
test -f .git/MERGE_MSG &&
|
||||
git diff
|
||||
|
||||
git diff &&
|
||||
test -n "$(git ls-files -u)"
|
||||
'
|
||||
|
||||
test_expect_success 'merging with a modify/modify conflict between merge bases' '
|
||||
|
||||
@@ -40,7 +40,7 @@ static int parse_status_slot(const char *var, int offset)
|
||||
die("bad config variable '%s'", var);
|
||||
}
|
||||
|
||||
static const char* color(int slot)
|
||||
static const char *color(int slot)
|
||||
{
|
||||
return wt_status_use_color > 0 ? wt_status_colors[slot] : "";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user