Clemens Buchacher [Mon, 15 Nov 2010 19:52:19 +0000 (20:52 +0100)]
use persistent memory for rejected paths
An aborted merge prints the list of rejected paths as part of the
error message. Since commit
f66caaf9 (do not overwrite files in
leading path), some of those paths do not have static buffers, so
we have to keep a copy. Use string_list's to accomplish this.
This changes the order of the list to the order in which the paths
are processed. Previously, it was reversed.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Sat, 9 Oct 2010 13:53:00 +0000 (15:53 +0200)]
do not overwrite files in leading path
If the work tree contains an untracked file x, and
unpack-trees wants to checkout a path x/*, the
file x is removed unconditionally.
Instead, apply the same checks that are normally
used for untracked files, and abort if the file
cannot be removed.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Clemens Buchacher [Sat, 9 Oct 2010 13:52:59 +0000 (15:52 +0200)]
lstat_cache: optionally return match_len
Return match_len so that the caller can know which leading path
component matched.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Clemens Buchacher [Sat, 9 Oct 2010 13:52:58 +0000 (15:52 +0200)]
add function check_ok_to_remove()
This wraps some inline code into the function check_ok_to_remove(),
which will later be used for leading path components as well.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Clemens Buchacher [Sun, 10 Oct 2010 08:38:58 +0000 (10:38 +0200)]
t7607: add leading-path tests
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Clemens Buchacher [Sun, 10 Oct 2010 08:35:43 +0000 (10:35 +0200)]
t7607: use test-lib functions and check MERGE_HEAD
Use the test_commit and test_path_is_missing
functions from the test library.
Also make sure that a merge which fails due to
pre-merge checks aborts properly and does not
leave MERGE_HEAD behind.
The "will not overwrite removed file" test is an
exception to this. It notices the untracked file
at a stage where the merge is already well under
way. Therefore we cannot abort the merge without
major restructuring. See the following thread for
more details.
http://mid.gmane.org/7vskopwxej.fsf@gitster.siamese.dyndns.org
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Junio C Hamano [Wed, 6 Oct 2010 20:49:45 +0000 (13:49 -0700)]
Merge branch 'maint'
* maint:
t/t3415: use && where applicable.
SubmittingPatches: Document some extra tags used in commit messages
Yann Dirson [Fri, 1 Oct 2010 21:19:19 +0000 (23:19 +0200)]
t/t3415: use && where applicable.
Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ramkumar Ramachandra [Sat, 2 Oct 2010 04:37:43 +0000 (10:07 +0530)]
SubmittingPatches: Document some extra tags used in commit messages
Document the meanings of the tags "Reported-by:", "Acked-by:",
"Reviewed-by:" and "Tested-by:" clearly. Also mention that the user is
free to use any custom tags.
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Liked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 4 Oct 2010 22:51:48 +0000 (17:51 -0500)]
diffcore-pickaxe.c: a void function shouldn't try to return something
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 6 Oct 2010 19:13:20 +0000 (12:13 -0700)]
Make test script t9157 executable
Fixes a buglet introduced by
a3c75056d
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 6 Oct 2010 19:11:26 +0000 (12:11 -0700)]
Merge branch 'jk/repack-reuse-object'
* jk/repack-reuse-object:
Documentation: pack.compression: explain how to recompress
repack: add -F flag to let user choose between --no-reuse-delta/object
Junio C Hamano [Wed, 6 Oct 2010 19:11:20 +0000 (12:11 -0700)]
Merge branch 'bc/fix-cherry-pick-root'
* bc/fix-cherry-pick-root:
builtin/revert.c: don't dereference a NULL pointer
Junio C Hamano [Wed, 6 Oct 2010 19:11:12 +0000 (12:11 -0700)]
Merge branch 'uk/fix-author-ident-sed-script'
* uk/fix-author-ident-sed-script:
get_author_ident_from_commit(): remove useless quoting
Junio C Hamano [Wed, 6 Oct 2010 19:10:35 +0000 (12:10 -0700)]
Merge branch 'cw/gitweb-hilite-config'
* cw/gitweb-hilite-config:
Enable highlight executable path as a configuration option
Junio C Hamano [Wed, 6 Oct 2010 19:10:29 +0000 (12:10 -0700)]
Merge branch 'ab/makefile-track-cc'
* ab/makefile-track-cc:
Makefile: add CC to TRACK_CFLAGS
Junio C Hamano [Wed, 6 Oct 2010 19:10:26 +0000 (12:10 -0700)]
Merge branch 'mg/reset-doc'
* mg/reset-doc:
git-reset.txt: make modes description more consistent
git-reset.txt: point to git-checkout
git-reset.txt: use "working tree" consistently
git-reset.txt: reset --soft is not a no-op
git-reset.txt: reset does not change files in target
git-reset.txt: clarify branch vs. branch head
Junio C Hamano [Wed, 6 Oct 2010 19:10:02 +0000 (12:10 -0700)]
Merge branch 'maint'
* maint:
Documentation/git-clone: describe --mirror more verbosely
do not depend on signed integer overflow
work around buggy S_ISxxx(m) implementations
xdiff: cast arguments for ctype functions to unsigned char
init: plug tiny one-time memory leak
diffcore-pickaxe.c: remove unnecessary curly braces
t3020 (ls-files-error-unmatch): remove stray '1' from end of file
setup: make sure git dir path is in a permanent buffer
environment.c: remove unused variable
git-svn: fix processing of decorated commit hashes
git-svn: check_cherry_pick should exclude commits already in our history
Documentation/git-svn: discourage "noMetadata"
Junio C Hamano [Tue, 5 Oct 2010 15:43:59 +0000 (08:43 -0700)]
Merge branch 'work/pt/for-junio' of git://repo.or.cz/git/mingw/4msysgit
* 'work/pt/for-junio' of git://repo.or.cz/git/mingw/4msysgit:
Add MinGW-specific execv() override.
Fix Windows-specific macro redefinition warning.
Fix 'clone' failure at DOS root directory.
mingw: do not crash on open(NULL, ...)
git-am: fix detection of absolute paths for windows
Side-step MSYS-specific path "corruption" leading to t5560 failure.
Side-step sed line-ending "corruption" leading to t6038 failure.
Skip 'git archive --remote' test on msysGit
Do not strip CR when grepping HTTP headers.
Skip t1300.70 and 71 on msysGit.
merge-octopus: Work around environment issue on Windows
MinGW: Report errors when failing to launch the html browser.
MinGW: fix stat() and lstat() implementations for handling symlinks
MinGW: Add missing file mode bit defines
MinGW: Use pid_t more consequently, introduce uid_t for greater compatibility
Junio C Hamano [Tue, 5 Oct 2010 19:44:08 +0000 (12:44 -0700)]
Martin Langhoff has a new e-mail address
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Uwe Kleine-König [Mon, 4 Oct 2010 17:28:27 +0000 (19:28 +0200)]
Documentation/git-clone: describe --mirror more verbosely
Some people in #linux-rt noticed that describing what "--mirror" option does
with "it mirrors" is way insufficient.
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Darren 'Some People' Hart <darren@dvhart.com>
Cc: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Erik Faye-Lund [Tue, 5 Oct 2010 07:24:10 +0000 (09:24 +0200)]
do not depend on signed integer overflow
Signed integer overflow is not defined in C, so do not depend on it.
This fixes a problem with GCC 4.4.0 and -O3 where the optimizer would
consider "consumed_bytes > consumed_bytes + bytes" as a constant
expression, and never execute the die()-call.
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Mon, 4 Oct 2010 10:53:11 +0000 (12:53 +0200)]
work around buggy S_ISxxx(m) implementations
There are buggy implementations of S_ISxxx(m) macros on some platforms
(e.g. NetBSD). The issue is that NetBSD doesn't take care to wrap its
macro arguments in parentheses, so on Linux and sane systems we have
S_ISREG(m) defined as something like:
(((m) & S_IFMT) == S_IFREG)
But on NetBSD:
((m & _S_IFMT) == _S_IFREG)
Since a caller in builtin/diff.c called our macro as `S_IFREG | 0644'
this bug introduced a logic error on NetBSD, since the precedence of
bit-wise & is higher than | in C.
[jc: took change description from Ævar Arnfjörð Bjarmason's patch]
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Mon, 4 Oct 2010 09:09:17 +0000 (04:09 -0500)]
xdiff: cast arguments for ctype functions to unsigned char
The ctype functions isspace(), isalnum(), et al take an integer
argument representing an unsigned character, or -1 for EOF. On
platforms with a signed char, it is unsafe to pass a char to them
without casting it to unsigned char first.
Most of git is already shielded against this by the ctype
implementation in git-compat-util.h, but xdiff, which uses libc
ctype.h, ought to be fixed.
Noticed-by: der Mouse <mouse@Rodents-Montreal.ORG>
Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Mon, 4 Oct 2010 04:34:27 +0000 (23:34 -0500)]
init: plug tiny one-time memory leak
The buffer used to construct paths like ".git/objects/info" and
".git/objects/pack" is allocated on the heap and never freed.
So free it. While at it, factor out the relevant code into its own
function and rename the sha1_dir variable to object_directory (to
match the change in everyday usage after the renaming of
SHA1_FILE_DIRECTORY in v0.99~603^2~7, 2005).
Noticed by valgrind while setting up tests (in test-lib).
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 4 Oct 2010 22:51:47 +0000 (17:51 -0500)]
diffcore-pickaxe.c: remove unnecessary curly braces
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 5 Oct 2010 15:36:10 +0000 (08:36 -0700)]
Merge early part of git-svn into maint
* commit 'git-svn/master~1':
git-svn: fix processing of decorated commit hashes
git-svn: check_cherry_pick should exclude commits already in our history
Documentation/git-svn: discourage "noMetadata"
Elijah Newren [Sun, 3 Oct 2010 20:00:00 +0000 (14:00 -0600)]
t3020 (ls-files-error-unmatch): remove stray '1' from end of file
Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Sat, 2 Oct 2010 08:36:52 +0000 (03:36 -0500)]
setup: make sure git dir path is in a permanent buffer
If setup_git_env() is run before the usual repository discovery
sequence and .git is a file with the text
gitdir: <path>
(with <path> any string) then the in-core git_dir variable is set to
the result of converting <path> to an absolute path using
make_absolute_path().
Unfortunately make_absolute_path() returns its result in a static
buffer that is overwritten by later calls. Such a call could cause
later accesses to git_dir (from git_pathdup(), for example) to read
the wrong path, leaving git very confused.
It is not obvious whether any existing code in git will trigger the
problem, but in any case, it is worth a few dozen bytes to copy the
return value from make_absolute_path() for some added peace of mind.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Sat, 2 Oct 2010 08:35:29 +0000 (03:35 -0500)]
environment.c: remove unused variable
After v1.6.0-rc0~230^2^ (environment.c: remove unused function,
2008-06-19), git_refs_dir is not used any more.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Mon, 27 Sep 2010 11:02:17 +0000 (07:02 -0400)]
Add MinGW-specific execv() override.
As of
2dbc887e, shell.c employs execv(), so provide a MinGW-specific
mingw_execv() override, complementing existing mingw_execvp() and
cousins.
As a bonus, this also resolves a compilation warning due to an
execv() prototype mismatch between Linux and MinGW. Linux expects
the second argument to be (char *const *), whereas MinGW expects
(const char *const *).
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Eric Sunshine [Mon, 27 Sep 2010 11:01:59 +0000 (07:01 -0400)]
Fix Windows-specific macro redefinition warning.
shell.c defines macro HELP_COMMAND which collides with a like-named
macro from winuser.h. Avoid collision by sanitizing preprocessor
namespace after including Windows headers.
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Eric Sunshine [Wed, 7 Jul 2010 01:48:47 +0000 (21:48 -0400)]
Fix 'clone' failure at DOS root directory.
Cloning via relative path fails for a project residing immediately under
the root directory of a DOS drive. For instance, for project c:/foo,
issuing "cd c:/" followed by "git clone foo bar" fails with error
"Unable to find remote helper for 'c'". The problem is caused by
make_nonrelative_path() incorrectly returning c://foo rather than
c:/foo for input "foo". The bogus path c://foo is misinterpreted by
transport_get() as a URL with unrecognized protocol "c", hence the
missing remote helper error. Fix make_nonrelative_path() to return
c:/foo rather than c://foo (and /foo rather than //foo on Unix).
Resolves msysgit issue #501 [1]
[PT: squashed in changes requested by Junio [2][3]]
[1] http://code.google.com/p/msysgit/issues/detail?id=501
[2] http://marc.info/?l=git&m=
128570102331652&w=2
[3] http://marc.info/?l=git&m=
128573246704862&w=2
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Erik Faye-Lund [Thu, 23 Sep 2010 17:35:25 +0000 (17:35 +0000)]
mingw: do not crash on open(NULL, ...)
fetch_and_setup_pack_index() apparently pass a NULL-pointer to
parse_pack_index(), which in turn pass it to check_packed_git_idx(),
which again pass it to open(). Since open() already sets errno
correctly for the NULL-case, let's just avoid the problematic strcmp.
[PT: squashed in fix for fopen which was missed first time round]
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Pat Thoyts [Thu, 30 Sep 2010 13:24:07 +0000 (14:24 +0100)]
git-am: fix detection of absolute paths for windows
Add an is_absolute_path function to abstract out platform differences
in checking for an absolute or relative path.
Specifically fixes t4150-am on Windows.
[PT: updated following suggestion from j6t to support \* and //*]
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Eric Sunshine [Tue, 20 Jul 2010 23:29:16 +0000 (19:29 -0400)]
Side-step MSYS-specific path "corruption" leading to t5560 failure.
Upon program invocation, MSYS converts environment variables containing
path-like values from Unix-style to DOS-style under the assumption that
the program being invoked understands only DOS-style pathnames. For
instance, the Unix-style path /msysgit is translated to c:/msysgit. For
test t5560, the path being requested from git-http-backend is specified
via environment variable PATH_INFO as a URL path of the form
/repo.git/foobar, which git-http-backend combines with GIT_PROJECT_ROOT
to determine the actual physical path within the repository. This is a
case where MSYS's conversion of the path-like value of PATH_INFO causes
harm, for two reasons. First, the resulting converted path, when joined
with GIT_PROJECT_ROOT is bogus (for instance,
"C:/msysgit/git/t/trash-zzz/C:/msysgit/repo.git/HEAD"). Second, the
converted PATH_INFO path is rejected by git-http-backend as an 'alias'
due to validation failure on the part of daemon_avoid_alias().
Unfortunately, the standard work-around of doubling the leading slash
(i.e. //repo.git/foobar) to suppress MSYS path conversion works only for
command-line arguments, but not for environment variables.
Consequently, side step the problem by instead passing git-http-backend
an already-constructed full path rather than components GIT_PROJECT_ROOT
and PATH_INFO.
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Eric Sunshine [Fri, 17 Sep 2010 13:16:01 +0000 (09:16 -0400)]
Side-step sed line-ending "corruption" leading to t6038 failure.
By default, MSYS sed throws away CR from CRLF line-endings. Tests
t6038.5 and t6038.6 employ sed to normalize conflict output of git-merge
for validation purposes. These tests expect CRLF line-endings to be
present in the normalized output of git-merge, and thus fail when sed
undesirably removes CR. Fix by employing sed's -b/--binary switch to
suppress its default behavior of dropping CR characters.
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Pat Thoyts [Fri, 17 Sep 2010 13:27:56 +0000 (14:27 +0100)]
Skip 'git archive --remote' test on msysGit
This test requires git daemon support which is not available on msysgit
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Pat Thoyts [Sun, 12 Sep 2010 09:37:24 +0000 (10:37 +0100)]
Do not strip CR when grepping HTTP headers.
By default, MSYS grep reads in text-mode and converts CRLF into LF line
endings. For testing HTTP use binary mode (-U) as checking is done for
CR in HTTP headers
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Pat Thoyts [Mon, 27 Sep 2010 21:02:57 +0000 (22:02 +0100)]
Skip t1300.70 and 71 on msysGit.
These two tests fail on msysGit because /dev/null is an alias for nul on
Windows and when reading the value back from git config the alias does
not match the real filename. Also the HOME environment variable has a
unix-style path but git returns a native equivalent path for '~'. As
these are platform-dependent equivalent results it seems simplest to
skip the test entirely.
Moves the NOT_MINGW prereq from t5503 into the test library.
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Johannes Schindelin [Fri, 11 Jun 2010 22:45:35 +0000 (00:45 +0200)]
merge-octopus: Work around environment issue on Windows
For some reason, the environment variables get upper-cased when a
subprocess is launched on Windows. Cope with that.
[PT: fixed typo in the char range noted by junio]
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Pat Thoyts [Thu, 18 Mar 2010 21:45:19 +0000 (21:45 +0000)]
MinGW: Report errors when failing to launch the html browser.
The mingw function to launch the system html browser is silent if the
target file does not exist leaving the user confused. Make it display
something.
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Reviewed-by: Erik Faye-Lund <kusmabite@gmail.com>
Pat Thoyts [Wed, 17 Mar 2010 15:17:34 +0000 (15:17 +0000)]
MinGW: fix stat() and lstat() implementations for handling symlinks
In msysGit the stat() function has been implemented using mingw_lstat
which sets the st_mode member to S_IFLNK when a symbolic links is found.
This causes the is_executable function to return when git attempts to
build a list of available commands in the help code and we end up missing
most git commands. (msysGit issue #445)
This patch modifies the implementation so that lstat() will return the link
flag but if we are called as stat() we read the size of the target and set
the mode to that of a regular file.
Includes squashed fix st_mode for symlink dirs
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Sebastian Schuberth [Mon, 28 Dec 2009 17:13:52 +0000 (18:13 +0100)]
MinGW: Add missing file mode bit defines
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Sebastian Schuberth [Mon, 28 Dec 2009 17:04:21 +0000 (18:04 +0100)]
MinGW: Use pid_t more consequently, introduce uid_t for greater compatibility
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Junio C Hamano [Thu, 30 Sep 2010 21:59:53 +0000 (14:59 -0700)]
Merge branch 'maint'
* maint:
Fix typo in pack-objects' usage
Make sure that git_getpass() never returns NULL
t0004 (unwritable files): simplify error handling
rev-list-options: clarify --parents and --children
Johannes Schindelin [Wed, 29 Sep 2010 22:22:33 +0000 (23:22 +0100)]
Fix typo in pack-objects' usage
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Wed, 29 Sep 2010 22:22:32 +0000 (23:22 +0100)]
Make sure that git_getpass() never returns NULL
The result of git_getpass() is used without checking for NULL, so let's
just die() instead of returning NULL.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Tue, 7 Sep 2010 01:50:17 +0000 (20:50 -0500)]
t0004 (unwritable files): simplify error handling
Instead of
... normal test script ...
status=$?
... cleanup ...
(exit $status)
set up cleanup commands with test_when_finished. This makes the
test script a little shorter, and more importantly, it ensures errors
during cleanup are reported.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Thu, 30 Sep 2010 15:31:43 +0000 (17:31 +0200)]
rev-list-options: clarify --parents and --children
Make it clearer that --parents resp. --children list the parent resp.
child commits next to each commit, so that I understand next time.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 29 Sep 2010 21:07:59 +0000 (14:07 -0700)]
Start 1.7.4 cycle
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 29 Sep 2010 22:26:12 +0000 (15:26 -0700)]
Merge branch 'tr/send-email-refuse-sending-unedited-cover-letter'
* tr/send-email-refuse-sending-unedited-cover-letter:
send-email: Refuse to send cover-letter template subject
Junio C Hamano [Wed, 29 Sep 2010 20:50:02 +0000 (13:50 -0700)]
Merge branch 'ab/send-email-catfile'
* ab/send-email-catfile:
send-email: use catfile() to concatenate files
Junio C Hamano [Wed, 29 Sep 2010 20:49:57 +0000 (13:49 -0700)]
Merge branch 'jc/grep-header-all-match-fix'
* jc/grep-header-all-match-fix:
log --author: take union of multiple "author" requests
grep: move logic to compile header pattern into a separate helper
Junio C Hamano [Wed, 29 Sep 2010 20:49:38 +0000 (13:49 -0700)]
Merge branch 'jc/no-branch-name-with-dash-at-front'
* jc/no-branch-name-with-dash-at-front:
disallow branch names that start with a hyphen
Junio C Hamano [Wed, 29 Sep 2010 20:49:28 +0000 (13:49 -0700)]
Merge branch 'jn/gitweb-test-lib'
* jn/gitweb-test-lib:
t/gitweb-lib.sh: Use tabs for indent consistently
t/gitweb-lib.sh: Use GIT_BUILD_DIR
Junio C Hamano [Wed, 29 Sep 2010 20:49:23 +0000 (13:49 -0700)]
Merge branch 'bc/fortran-userdiff'
* bc/fortran-userdiff:
userdiff.c: add builtin fortran regex patterns
Junio C Hamano [Wed, 29 Sep 2010 20:49:18 +0000 (13:49 -0700)]
Merge branch 'jk/read-tree-empty'
* jk/read-tree-empty:
read-tree: deprecate syntax without tree-ish args
Junio C Hamano [Wed, 29 Sep 2010 20:49:09 +0000 (13:49 -0700)]
Merge branch 'rr/format-patch-count-without-merges'
* rr/format-patch-count-without-merges:
format-patch: Don't go over merge commits
t4014-format-patch: Call test_tick before committing
Junio C Hamano [Wed, 29 Sep 2010 20:49:03 +0000 (13:49 -0700)]
Merge branch 'jc/pickaxe-grep'
* jc/pickaxe-grep:
diff/log -G<pattern>: tests
git log/diff: add -G<regexp> that greps in the patch text
diff: pass the entire diff-options to diffcore_pickaxe()
gitdiffcore doc: update pickaxe description
Junio C Hamano [Wed, 29 Sep 2010 20:48:44 +0000 (13:48 -0700)]
Merge branch 'gb/shell-ext'
* gb/shell-ext:
shell: Display errors from improperly-formatted command lines
shell: Rewrite documentation and improve error message
Add sample commands for git-shell
Add interactive mode to git-shell for user-friendliness
Allow creation of arbitrary git-shell commands
Junio C Hamano [Wed, 29 Sep 2010 20:48:20 +0000 (13:48 -0700)]
Merge branch 'rr/fmt-merge-msg'
* rr/fmt-merge-msg:
t6200-fmt-merge-msg: Exercise '--log' to configure shortlog length
t6200-fmt-merge-msg: Exercise 'merge.log' to configure shortlog length
merge: Make 'merge.log' an integer or boolean option
merge: Make '--log' an integer option for number of shortlog entries
fmt_merge_msg: Change fmt_merge_msg API to accept shortlog_len
Conflicts:
builtin/merge.c
Junio C Hamano [Wed, 29 Sep 2010 20:47:51 +0000 (13:47 -0700)]
Merge branch 'po/etc-gitattributes'
* po/etc-gitattributes:
Add global and system-wide gitattributes
Conflicts:
Documentation/config.txt
Makefile
Junio C Hamano [Tue, 28 Sep 2010 21:08:38 +0000 (16:08 -0500)]
MinGW: avoid collisions between "tags" and "TAGS"
On case insensitive filesystems, "tags" and "TAGS" target will try to
overwrite the same file. Allow MinGW to use "ETAGS" instead.
These two targets do produce real files; do not put them on .PHONY target
list.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Wed, 29 Sep 2010 07:26:23 +0000 (09:26 +0200)]
diff: trivial fix for --output file error message
The option argument is either after the equal sign in --output=... or in
the next command-line argument. optarg is the reliable way to access it.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Tue, 28 Sep 2010 11:16:07 +0000 (13:16 +0200)]
user-manual: fix anchor name Finding-comments-With-given-Content
Change the anchor name to
Finding-commits-With-given-Content
so that it corresponds to the actual content there.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Kirill Smelkov [Tue, 28 Sep 2010 08:20:24 +0000 (12:20 +0400)]
user-manual: be consistent in illustrations to 'git rebase'
Since we use a-b-c for mywork commits in one place, I think it would be
logical to also use a-b-c too in other illustration on this topic.
Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jon Seymour [Mon, 27 Sep 2010 15:32:45 +0000 (01:32 +1000)]
stash: simplify parsing fixes
This patch simplifies Brian's fix for the recent regression by:
* eliminating the extra loop
* eliminating use of git rev-parse for parsing flags
* making use of the for opt idiom for the retained loop
* eliminating the redundant -- case
The patch has been tested with the tests in current maint.
Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 29 Sep 2010 16:42:53 +0000 (09:42 -0700)]
Git 1.7.3.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jon Seymour [Tue, 28 Sep 2010 13:19:52 +0000 (23:19 +1000)]
stash: fix git stash branch regression when branch creation fails
"git stash branch <branch> <stash>" started discarding the stash
when the branch creation fails. It should have kept the stash
intact when aborting.
Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tomas Carnecky [Tue, 28 Sep 2010 13:19:51 +0000 (23:19 +1000)]
stash drops the stash even if creating the branch fails because it already exists
This bug was disovered by someone on IRC when he tried to
$ git stash branch <branch> <stash>
while <branch> already existed. In that case the stash is dropped even
though it isn't applied on any branch, so the stash is effectively lost.
Signed-off-by: Tomas Carnecky <tom@dbservice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Linus Torvalds [Mon, 27 Sep 2010 19:14:57 +0000 (12:14 -0700)]
Fix missing 'does' in man-page for 'git checkout'
Reported-by: Rainer Standke <rainer.standke@krankikom.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jan Krüger [Mon, 27 Sep 2010 12:21:58 +0000 (14:21 +0200)]
Documentation: pack.compression: explain how to recompress
Add a small remark about how to recompress all existing objects after
changing the compression level for pack files.
Signed-off-by: Jan Krüger <jk@jk.gs>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jan Krüger [Mon, 27 Sep 2010 12:19:36 +0000 (14:19 +0200)]
repack: add -F flag to let user choose between --no-reuse-delta/object
In
479b56ba ('make "repack -f" imply "pack-objects --no-reuse-object"'),
git repack -f was changed to include recompressing all objects on the
zlib level on the assumption that if the user wants to spend that much
time already, some more time won't hurt (and recompressing is useful if
the user changed the zlib compression level).
However, "some more time" can be quite long with very big repositories,
so some users are going to appreciate being able to choose. If we are
going to give them the choice, --no-reuse-object will probably be
interesting a lot less frequently than --no-reuse-delta. Hence, this
reverts -f to the old behaviour (--no-reuse-delta) and adds a new -F
option that replaces the current -f.
Measurements taken using this patch on a current clone of git.git
indicate a 17% decrease in time being made available to users:
git repack -Adf 34.84s user 0.56s system 145% cpu 24.388 total
git repack -AdF 38.79s user 0.56s system 133% cpu 29.394 total
Signed-off-by: Jan Krüger <jk@jk.gs>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ævar Arnfjörð Bjarmason [Sun, 12 Sep 2010 22:37:45 +0000 (22:37 +0000)]
Makefile: add CC to TRACK_CFLAGS
Change the git make process so that everything's rebuilt if the CC is
changed. Before we wouldn't rebuilt if e.g. the CC variable was
changed from gcc to clang.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Pat Notz [Thu, 16 Sep 2010 20:53:22 +0000 (14:53 -0600)]
dir.c: squelch false uninitialized memory warning
GCC 4.4.4 on MacOS incorrectly warns about potential use of uninitialized memory.
Signed-off-by: Pat Notz <patnotz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 27 Sep 2010 03:18:01 +0000 (22:18 -0500)]
git-send-email.perl: ensure $domain is defined before using it
valid_fqdn() may attempt to operate on an undefined value if
Net::Domain::domainname fails to determine the domain name. This causes
perl to emit unpleasant warnings.
So, add a check for whether $domain has been defined before using it.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 27 Sep 2010 02:49:13 +0000 (21:49 -0500)]
wt-status.c: don't leak directory entries when processing untracked,ignored
When iterating through the list of directory entries, searching for
untracked entries, only the entries added to the string_list were free'd.
The rest (tracked or not matching the pathspec) were leaked.
Ditto for the "ignored" loop.
Rearrange the loops so that all entries are free'd.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder [Sun, 26 Sep 2010 05:20:18 +0000 (07:20 +0200)]
t6050 (replace): fix bogus "fetch branch with replacement" test
The test was missing some "&&" at the end of some lines and it
was wrong because, as the replacement refs were not fetched,
the commits from the parallel branch should not show up. This
was found by Elijah Newren.
This is fixed by checking that after the branch from HASH6 is
fetched, the commits from the parallel branch don't show up,
and then by fetching the replacement refs and checking that
they do show up afterwards.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Wesley J. Landaker [Mon, 13 Sep 2010 14:59:54 +0000 (08:59 -0600)]
Documentation: Refer to git-commit-tree in git-filter-branch help
Currently, the help for git filter-branch refers users of --env-filter
to git-commit for information about environment variables affecting
commits. However, this information is not contained in the git-commit
help, but is very explicitly detailed in git-commit-tree.
Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Fri, 24 Sep 2010 16:43:59 +0000 (18:43 +0200)]
update comment and documentation for :/foo syntax
The documentation in revisions.txt did not match the implementation, and
the comment in sha1_name.c was incomplete.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Daniel Knittl-Frank [Fri, 24 Sep 2010 16:21:59 +0000 (18:21 +0200)]
Improvements to `git checkout -h`
be a little more verbose about what each option does
Signed-off-by: Daniel Knittl-Frank <knittl89+git@googlemail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Thu, 23 Sep 2010 12:33:51 +0000 (14:33 +0200)]
contrib/completion: --no-index option to git diff
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Uwe Kleine-König [Thu, 23 Sep 2010 09:22:10 +0000 (11:22 +0200)]
get_author_ident_from_commit(): remove useless quoting
The command 's/'\''/'\''\'\'\''/g' only triples single quotes:
$ echo "What's up?" | sed 's/'\''/'\''\'\'\''/g'
What'''s up?
This doesn't hurt as compared to a single single quote it only adds an
empty string, but it makes the script needlessly complicated and hard to
understand. The useful quoting is done by s/'\''/'\''\\'\'\''/g at the
beginning of the script and only once for all three variables.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Wed, 22 Sep 2010 00:35:59 +0000 (20:35 -0400)]
prefer test -h over test -L in shell scripts
Even though "-L" is POSIX, the former is more portable, and
we tend to prefer it already.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christopher Wilson [Tue, 21 Sep 2010 07:25:19 +0000 (00:25 -0700)]
Enable highlight executable path as a configuration option
Allow build-time/run-time configuration of the highlight executable
(must be the one from http://www.andre-simon.de due to assumptions
about parameters and output). Defaults to previous behavior which
assumes that highlight is available on the server PATH. However, if
this is not the case, the path to the highlight executable can be
configured at build time as a configuration variable
HIGHLIGHT_BIN = /path/to/highlight
or at runtime by configuring GITWEB_CONFIG
$highlight_bin = /path/to/highlight
Signed-off-by: Christopher Wilson <cwilson@cdwilson.us>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 22 Sep 2010 19:15:37 +0000 (12:15 -0700)]
CodingGuidelines: spell Arithmetic Expansion with $(($var))
POSIX wants shells to support both "N" and "$N" and requires them to yield
the same answer to $((N)) and $(($N)), but we should aim for portability
in a case like this, especially when the price we pay to do so is so
small, i.e. a few extra dollars.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ramsay Jones [Tue, 21 Sep 2010 17:45:09 +0000 (18:45 +0100)]
t1503: Fix arithmetic expansion syntax error when using dash
On systems which have dash as /bin/sh, such as Ubuntu, the final
test (master@{n} for various n) fails with a syntax error while
processing an arithmetic expansion. The syntax error is caused by
using a bare name ('N') as a variable reference in the expression.
In order to avoid the syntax error, we spell the variable reference
as '$N' rather than simply 'N'.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Pat Notz [Thu, 16 Sep 2010 20:53:23 +0000 (14:53 -0600)]
strbuf.h: fix comment typo
Signed-off-by: Pat Notz <patnotz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Mon, 27 Sep 2010 17:29:45 +0000 (12:29 -0500)]
builtin/revert.c: don't dereference a NULL pointer
cherry-pick will segfault when transplanting a root commit if the --ff
option is used. This happens because the "parent" pointer is set to NULL
when the commit being cherry-picked has no parents. Later, when "parent"
is dereferenced, the cherry-pick segfaults.
Fix this by checking whether "parent" is NULL before dereferencing it and
add a test for this case of cherry-picking a root commit with --ff.
Reported-by: Zbyszek Szmek <zbyszek@in.waw.pl>
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brian Gernhardt [Fri, 24 Sep 2010 22:15:34 +0000 (18:15 -0400)]
git-stash: fix flag parsing
Currently git-stash uses `git rev-parse --no-revs -- "$@"` to set its
FLAGS variable. This is the same as `FLAGS="-- $@"`. It should use
`git rev-parse --no-revs --flags "$@"`, but that eats any "-q" or
"--quiet" argument. So move the check for quiet before rev-parse.
Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Fri, 24 Sep 2010 20:40:38 +0000 (15:40 -0500)]
t/t3903-stash: improve testing of git-stash show
Recently, the 'stash show' functionality was broken for the case when a
stash-like argument was supplied. Since, commit 9bf09e, 'stash show' when
supplied a stash-like argument prints nothing and still exists with a zero
status. Unfortunately, the flaw slipped through the test suite cracks
since the output of 'stash show' was not verified to be correct.
Improve and expand on the existing tests so that this flaws is detected.
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mathias Lafeldt [Thu, 23 Sep 2010 22:05:03 +0000 (00:05 +0200)]
git-svn: fix processing of decorated commit hashes
The function working_head_info() fails to parse commit hashes if they
are decorated (i.e. log.decorate is true), causing dcommit, rebase, and
other vital git-svn commands to malfunction.
This patch disables decorated log output with --no-decorate.
[ew: wrapped long line]
Signed-off-by: Mathias Lafeldt <misfire@debugon.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
Steven Walter [Thu, 2 Sep 2010 22:32:06 +0000 (18:32 -0400)]
git-svn: check_cherry_pick should exclude commits already in our history
The merge-base between @$parents and $merge_tip may have been reached
through a merge commit. This means that some commits that are ancestors
of @$parents will not be ancestors of $merge_base. The mergeinfo
property will not list commits that are ancestors of @$parents, so we
need to explicitly exclude them.
[ew: squashed and cleaned up test case from Steven]
Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Eric Wong [Sat, 21 Aug 2010 18:52:14 +0000 (18:52 +0000)]
Documentation/git-svn: discourage "noMetadata"
"noMetadata" is a sometimes harmful option, so better document
its behavior and limitations.
Suggested-by: Vadim Zeitlin
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Michael J Gruber [Wed, 15 Sep 2010 20:47:44 +0000 (22:47 +0200)]
git-reset.txt: make modes description more consistent
Currently, the structure of the individual mode entries is different
which makes it difficult to grasp the differences between the modes.
Also, the same items are named differently (e.g. <commit>, "the named
commit", "the given commit", "the commit being switched to").
Structure and word all mode entries consistently.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Wed, 15 Sep 2010 20:47:43 +0000 (22:47 +0200)]
git-reset.txt: point to git-checkout
for the case of updating a file in index and worktree, or from the index
to the worktree.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Wed, 15 Sep 2010 20:47:42 +0000 (22:47 +0200)]
git-reset.txt: use "working tree" consistently
as per git help glossary
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Wed, 15 Sep 2010 20:47:41 +0000 (22:47 +0200)]
git-reset.txt: reset --soft is not a no-op
Make it clearer that git reset --soft actually does something (changing
HEAD). While it is mentioned in the previous paragraph already it can
be easily overlooked otherwise.
Also, git reset --soft does not look at the index nor the worktree, so
there is no "good order" requirement.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Wed, 15 Sep 2010 20:47:40 +0000 (22:47 +0200)]
git-reset.txt: reset does not change files in target
git-reset obviously cannot change files in an existing commit. Make it
not sound as if it could: reset can change HEAD and, in that sense, can
change which state a file in HEAD is in.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>