Jeff King [Mon, 23 May 2011 20:31:05 +0000 (16:31 -0400)]
combine-diff: respect textconv attributes
When doing a combined diff, we did not respect textconv attributes at
all. This generally lead to us printing "Binary files differ" when we
could show a combined diff of the converted text.
This patch converts file contents according to textconv attributes. The
implementation is slightly ugly; because the textconv code is tightly
linked with the diff_filespec code, we temporarily create a diff_filespec
during conversion. In practice, though, this should not create a
performance problem.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 23 May 2011 20:30:14 +0000 (16:30 -0400)]
refactor get_textconv to not require diff_filespec
This function actually does two things:
1. Load the userdiff driver for the filespec.
2. Decide whether the driver has a textconv component, and
initialize the textconv cache if applicable.
Only part (1) requires the filespec object, and some callers
may not have a filespec at all. So let's split them it into
two functions, and put part (2) with the userdiff code,
which is a better fit.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 23 May 2011 20:27:34 +0000 (16:27 -0400)]
combine-diff: handle binary files as binary
The combined diff code path is totally different from the
regular diff code path, and didn't handle binary files at
all. The results of a combined diff on a binary file could
range from annoying (since we spewed binary garbage,
possibly upsetting the user's terminal), to wrong (embedded
NULs caused us to show incorrect diffs, with lines truncated
at the NUL character), to potential security problems
(embedded NULs could interfere with "-z" output, possibly
defeating policy hooks which parse diff output).
Instead, we consider a combined diff to be binary if any of
the input blobs is binary. To show a binary combined diff,
we indicate "Binary blobs differ"; the "index" meta line
will show which parents had which blob.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 23 May 2011 20:16:59 +0000 (16:16 -0400)]
combine-diff: calculate mode_differs earlier
One loop combined both the patch generation and checking
whether there was any mode change to report. Let's factor
that into two separate loops, as we may care about the mode
change even if we are not generating patches (e.g., because
we are showing a binary diff, which will come in a future
patch).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 23 May 2011 20:16:41 +0000 (16:16 -0400)]
combine-diff: split header printing into its own function
This is a pretty big logical chunk, so it makes the function
a bit more readable to have it split out. In addition, it
will make it easier to add an alternate code path for binary
diffs in a future patch.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 21 May 2011 01:50:29 +0000 (18:50 -0700)]
Merge branch 'maint'
* maint:
git-svn: Fix git svn log --show-commit
Michael J Gruber [Fri, 20 May 2011 11:16:34 +0000 (13:16 +0200)]
git-svn: Fix git svn log --show-commit
git svn log --show-commit had no tests and, consequently, no attention
by the author of
b1b4755 (git-log: put space after commit mark, 2011-03-10)
who kept git svn log working only without --show-commit.
Introduce a test and fix it.
Reported-by: Bernt Hansen <bernt@norang.ca>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 20 May 2011 03:50:07 +0000 (20:50 -0700)]
Update draft release notes to 1.7.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 20 May 2011 04:02:14 +0000 (21:02 -0700)]
Merge branch 'jc/maint-1.7.4-pathspec-stdin-and-cmdline'
* jc/maint-1.7.4-pathspec-stdin-and-cmdline:
Junio C Hamano [Fri, 20 May 2011 03:37:21 +0000 (20:37 -0700)]
Merge branch 'rg/copy-gecos-username'
* rg/copy-gecos-username:
copy_gecos: fix not adding nlen to len when processing "&"
Junio C Hamano [Fri, 20 May 2011 03:37:21 +0000 (20:37 -0700)]
Merge branch 'jl/submodule-conflicted-gitmodules'
* jl/submodule-conflicted-gitmodules:
Submodules: Don't parse .gitmodules when it contains, merge conflicts
test that git status works with merge conflict in, .gitmodules
Junio C Hamano [Fri, 20 May 2011 03:37:21 +0000 (20:37 -0700)]
Merge branch 'jc/replacing'
* jc/replacing:
read_sha1_file(): allow selective bypassing of replacement mechanism
inline lookup_replace_object() calls
read_sha1_file(): get rid of read_sha1_file_repl() madness
t6050: make sure we test not just commit replacement
Declare lookup_replace_object() in cache.h, not in commit.h
Conflicts:
environment.c
Junio C Hamano [Fri, 20 May 2011 03:37:21 +0000 (20:37 -0700)]
Merge branch 'nd/sparse-co-fix'
* nd/sparse-co-fix:
sparse checkout: do not eagerly decide the fate for whole directory
t1011: fix sparse-checkout initialization and add new file
Junio C Hamano [Fri, 20 May 2011 03:37:20 +0000 (20:37 -0700)]
Merge branch 'ld/p4-preserve-user-names'
* ld/p4-preserve-user-names:
git-p4: warn if git authorship won't be retained
git-p4: small improvements to user-preservation
git-p4: add option to preserve user names
Junio C Hamano [Fri, 20 May 2011 03:37:20 +0000 (20:37 -0700)]
Merge branch 'ms/tagname-does-not-begin-with-dash'
* ms/tagname-does-not-begin-with-dash:
tag: disallow '-' as tag name
Junio C Hamano [Fri, 20 May 2011 03:37:20 +0000 (20:37 -0700)]
Merge branch 'jk/git-connection-deadlock-fix'
* jk/git-connection-deadlock-fix:
test core.gitproxy configuration
send-pack: avoid deadlock on git:// push with failed pack-objects
connect: let callers know if connection is a socket
connect: treat generic proxy processes like ssh processes
Conflicts:
connect.c
Junio C Hamano [Fri, 20 May 2011 03:37:19 +0000 (20:37 -0700)]
Merge branch 'js/maint-send-pack-stateless-rpc-deadlock-fix'
* js/maint-send-pack-stateless-rpc-deadlock-fix:
sideband_demux(): fix decl-after-stmt
Junio C Hamano [Fri, 20 May 2011 03:37:19 +0000 (20:37 -0700)]
Merge branch 'jk/cherry-pick-root-with-resolve'
* jk/cherry-pick-root-with-resolve:
t3503: test cherry picking and reverting root commits
revert: allow reverting a root commit
cherry-pick: handle root commits with external strategies
Junio C Hamano [Fri, 20 May 2011 03:37:18 +0000 (20:37 -0700)]
Merge branch 'jc/maint-pathspec-stdin-and-cmdline'
* jc/maint-pathspec-stdin-and-cmdline:
setup_revisions(): take pathspec from command line and --stdin correctly
Conflicts:
revision.c
Junio C Hamano [Fri, 20 May 2011 03:37:08 +0000 (20:37 -0700)]
Merge 1.7.5.2 in
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 20 May 2011 03:17:44 +0000 (20:17 -0700)]
Revert "Merge branch 'en/merge-recursive'"
As the band-aid to merge-recursive seems to regress complex merges in an
unpleasant way. The merge-recursive implementation needs to be rewritten
in such a way that it resolves renames and D/F conflicts entirely in-core
and not to touch working tree at all while doing so. But in the meantime,
this reverts commit
ac9666f84 that merged the topic in its entirety.
Junio C Hamano [Fri, 20 May 2011 03:30:44 +0000 (20:30 -0700)]
Git 1.7.5.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 19 May 2011 21:24:24 +0000 (17:24 -0400)]
Makefile: sort TEST_PROGRAMS list
We usually keep these lists in sorted order, but the last
few entries were just tacked on the end.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Thu, 19 May 2011 15:14:25 +0000 (10:14 -0500)]
provide a copy of the LGPLv2.1
The LGPL seems to require providing a copy of the license when
distributing xdiff, compat/fnmatch, and so on, or altering the license
notices to refer to the GPL intead. Since we don't want to do the
latter, let's do the former. It's nice to let people know their
rights anyway.
Inspired-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Wed, 18 May 2011 08:57:44 +0000 (04:57 -0400)]
test core.gitproxy configuration
This is just a basic sanity test to see whether
core.gitproxy works at all. Until now, we were not testing
anywhere.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rafael Gieschke [Mon, 16 May 2011 20:08:21 +0000 (22:08 +0200)]
copy_gecos: fix not adding nlen to len when processing "&"
nlen has to be added to len when inserting (capitalized) pw_name as
substitution for "&" in pw_gecos. Otherwise, pw_gecos will be truncated
and data might be written beyond name+sz.
Signed-off-by: Rafael Gieschke <rafael@gieschke.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 16 May 2011 23:58:35 +0000 (16:58 -0700)]
Update release notes to 1.7.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 17 May 2011 00:01:03 +0000 (17:01 -0700)]
Merge branch 'js/maint-1.6.6-send-pack-stateless-rpc-deadlock-fix' into js/maint-send-pack-stateless-rpc-deadlock-fix
* js/maint-1.6.6-send-pack-stateless-rpc-deadlock-fix:
sideband_demux(): fix decl-after-stmt
Junio C Hamano [Mon, 16 May 2011 23:47:16 +0000 (16:47 -0700)]
Merge branch 'jc/convert'
* jc/convert:
convert: make it harder to screw up adding a conversion attribute
convert: make it safer to add conversion attributes
convert: give saner names to crlf/eol variables, types and functions
convert: rename the "eol" global variable to "core_eol"
Junio C Hamano [Mon, 16 May 2011 23:47:10 +0000 (16:47 -0700)]
Merge branch 'ci/commit--interactive-atomic'
* ci/commit--interactive-atomic:
Test atomic git-commit --interactive
Add commit to list of config.singlekey commands
Add support for -p/--patch to git-commit
Allow git commit --interactive with paths
t7501.8: feed a meaningful command
Use a temporary index for git commit --interactive
Junio C Hamano [Mon, 16 May 2011 23:47:00 +0000 (16:47 -0700)]
Merge branch 'sg/completion-updates'
* sg/completion-updates:
Revert "completion: don't declare 'local words' to make zsh happy"
git-completion: fix regression in zsh support
completion: move private shopt shim for zsh to __git_ namespace
completion: don't declare 'local words' to make zsh happy
Junio C Hamano [Mon, 16 May 2011 23:46:53 +0000 (16:46 -0700)]
Merge branch 'kk/maint-prefix-in-config-mak'
* kk/maint-prefix-in-config-mak:
Honor $(prefix) set in config.mak* when defining ETC_GIT*
Revert "Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir"
Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir
Junio C Hamano [Mon, 16 May 2011 23:46:23 +0000 (16:46 -0700)]
Merge branch 'mg/merge-ff-config'
* mg/merge-ff-config:
tests: check git does not barf on merge.ff values for future versions of git
merge: introduce merge.ff configuration variable
Conflicts:
t/t7600-merge.sh
Junio C Hamano [Mon, 16 May 2011 23:44:57 +0000 (16:44 -0700)]
Merge branch 'maint'
* maint:
Update draft release notes to 1.7.5.2
Documentation/git-fsck.txt: fix typo: unreadable -> unreachable
Junio C Hamano [Mon, 16 May 2011 23:44:50 +0000 (16:44 -0700)]
Update draft release notes to 1.7.5.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 16 May 2011 23:39:09 +0000 (16:39 -0700)]
Merge branch 'jn/maint-format-patch-doc' into maint
* jn/maint-format-patch-doc:
Documentation: describe the format of messages with inline patches
Junio C Hamano [Mon, 16 May 2011 23:38:56 +0000 (16:38 -0700)]
Merge branch 'ss/cherry-pick-x-doc' into maint
* ss/cherry-pick-x-doc:
doc: Clarify that "cherry-pick -x" does not use "git notes"
Junio C Hamano [Mon, 16 May 2011 23:38:46 +0000 (16:38 -0700)]
Merge branch 'vr/merge-base-doc' into maint
* vr/merge-base-doc:
Restructure documentation for git-merge-base.
Documentation: update to git-merge-base --octopus
Junio C Hamano [Mon, 16 May 2011 23:38:16 +0000 (16:38 -0700)]
Merge branch 'sr/maint-fast-import-tighten-option-parsing' into maint
* sr/maint-fast-import-tighten-option-parsing:
fast-import: fix option parser for no-arg options
Junio C Hamano [Mon, 16 May 2011 23:37:54 +0000 (16:37 -0700)]
Merge branch 'jc/t1506-shell-param-expansion-gotcha' into maint
* jc/t1506-shell-param-expansion-gotcha:
t1507: avoid "${parameter<op>'word'}" inside double-quotes
Junio C Hamano [Mon, 16 May 2011 23:37:33 +0000 (16:37 -0700)]
Merge branch 'jc/fix-add-u-unmerged' into maint
* jc/fix-add-u-unmerged:
Fix "add -u" that sometimes fails to resolve unmerged paths
Conflicts:
builtin/add.c
Junio C Hamano [Mon, 16 May 2011 23:37:12 +0000 (16:37 -0700)]
Merge branch 'jn/gitweb-dependency' into maint
* jn/gitweb-dependency:
Remove gitweb/gitweb.cgi and other legacy targets from main Makefile
git-instaweb: Simplify build dependency on gitweb
Junio C Hamano [Mon, 16 May 2011 23:37:07 +0000 (16:37 -0700)]
Merge branch 'jc/maint-branch-mergeoptions' into maint
* jc/maint-branch-mergeoptions:
merge: make branch.<name>.mergeoptions correctly override merge.<option>
Conflicts:
builtin/merge.c
Junio C Hamano [Mon, 16 May 2011 23:36:46 +0000 (16:36 -0700)]
Merge branch 'jc/maint-add-p-overlapping-hunks' into maint
* jc/maint-add-p-overlapping-hunks:
t3701: add-p-fix makes the last test to pass
"add -p": work-around an old laziness that does not coalesce hunks
add--interactive.perl: factor out repeated --recount option
t3701: Editing a split hunk in an "add -p" session
add -p: 'q' should really quit
Jim Meyering [Mon, 16 May 2011 18:23:35 +0000 (20:23 +0200)]
Documentation/git-fsck.txt: fix typo: unreadable -> unreachable
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 16 May 2011 06:52:57 +0000 (02:52 -0400)]
send-pack: avoid deadlock on git:// push with failed pack-objects
Commit
09c9957c fixes a deadlock in which pack-objects
fails, the remote end is still waiting for pack data, and we
are still waiting for the remote end to say something (see
that commit for a much more in-depth explanation).
We solved the problem there by making sure the output pipe
is closed on error; thus the remote sees EOF, and proceeds
to complain and close its end of the connection.
However, in the special case of push over git://, we don't
have a pipe, but rather a full-duplex socket, with another
dup()-ed descriptor in place of the second half of the pipe.
In this case, closing the second descriptor signals nothing
to the remote end, and we still deadlock.
This patch calls shutdown() explicitly to signal EOF to the
other side.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 16 May 2011 06:52:11 +0000 (02:52 -0400)]
connect: let callers know if connection is a socket
They might care because they want to do a half-duplex close.
With pipes, that means simply closing the output descriptor;
with a socket, you must actually call shutdown.
Instead of exposing the magic no_fork child_process struct,
let's encapsulate the test in a function.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 16 May 2011 06:46:07 +0000 (02:46 -0400)]
connect: treat generic proxy processes like ssh processes
The git_connect function returns two ends of a pipe for
talking with a remote, plus a struct child_process
representing the other end of the pipe. If we have a direct
socket connection, then this points to a special "no_fork"
child process.
The code path for doing git-over-pipes or git-over-ssh sets
up this child process to point to the child git command or
the ssh process. When we call finish_connect eventually, we
check wait() on the command and report its return value.
The code path for git://, on the other hand, always sets it
to no_fork. In the case of a direct TCP connection, this
makes sense; we have no child process. But in the case of a
proxy command (configured by core.gitproxy), we do have a
child process, but we throw away its pid, and therefore
ignore its return code.
Instead, let's keep that information in the proxy case, and
respect its return code, which can help catch some errors
(though depending on your proxy command, it will be errors
reported by the proxy command itself, and not propagated
from git commands. Still, it is probably better to propagate
such errors than to ignore them).
It also means that the child_process field can reliably be
used to determine whether the returned descriptors are
actually a full-duplex socket, which means we should be
using shutdown() instead of a simple close.
Signed-off-by: Jeff King <peff@peff.net>
Helped-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 16 May 2011 23:19:49 +0000 (16:19 -0700)]
sideband_demux(): fix decl-after-stmt
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 12 May 2011 11:10:07 +0000 (07:10 -0400)]
t3503: test cherry picking and reverting root commits
We already tested cherry-picking a root commit, but only
with the internal merge-recursive strategy. Let's also test
the recently-allowed reverting of a root commit, as well as
testing with external strategies (which until recently
triggered a segfault).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 12 May 2011 11:09:55 +0000 (07:09 -0400)]
revert: allow reverting a root commit
Although it is probably an uncommon operation, there is no
reason to disallow it, as it works just fine. It is the
reverse of a cherry-pick of a root commit, which is already
allowed.
We do have to tweak one check on whether we have a merge
commit, which assumed we had at least one parent.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 12 May 2011 11:09:46 +0000 (07:09 -0400)]
cherry-pick: handle root commits with external strategies
The merge-recursive strategy already handles root commits;
it cherry-picks the difference between the empty tree and
the root commit's tree.
However, for external strategies, we dereference NULL and
segfault while building the argument list. Instead, let's
handle this by passing the empty tree sha1 to the merge
script.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 23:19:16 +0000 (16:19 -0700)]
Sync release notes for 1.7.6 to exclude what are in maintenance track
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 23:16:56 +0000 (16:16 -0700)]
Merge branch 'maint'
* maint:
Update draft release notes to 1.7.5.2
git_open_noatime(): drop unused parameter
sha1_file: typofix
Junio C Hamano [Sun, 15 May 2011 23:11:55 +0000 (16:11 -0700)]
Update draft release notes to 1.7.5.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 23:10:49 +0000 (16:10 -0700)]
Merge branch 'cn/format-patch-quiet' into maint
* cn/format-patch-quiet:
format-patch: document --quiet option
format-patch: don't pass on the --quiet flag
Junio C Hamano [Sun, 15 May 2011 22:57:16 +0000 (15:57 -0700)]
Merge branch 'jm/mergetool-submodules' into maint
* jm/mergetool-submodules:
mergetool: Teach about submodules
Junio C Hamano [Sun, 15 May 2011 22:56:44 +0000 (15:56 -0700)]
Merge branch 'jk/format-patch-quote-special-in-from' into maint
* jk/format-patch-quote-special-in-from:
pretty: quote rfc822 specials in email addresses
Junio C Hamano [Sun, 15 May 2011 22:52:40 +0000 (15:52 -0700)]
Merge branch 'vh/git-svn-doc' into maint
* vh/git-svn-doc:
git-svn.txt: small typeface improvements
git-svn.txt: move option descriptions
git-svn.txt: fix usage of --add-author-from
Junio C Hamano [Sun, 15 May 2011 19:16:29 +0000 (12:16 -0700)]
git_open_noatime(): drop unused parameter
Since commit
c793430 (Limit file descriptors used by packs, 2011-02-28),
the extra parameter added in
f2e872aa (Work around EMFILE when there are
too many pack files, 2010-11-01) is not used anymore.
Remove it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Junio C Hamano [Sun, 15 May 2011 19:16:03 +0000 (12:16 -0700)]
sha1_file: typofix
The number zero is spelled "zero", not "zer0".
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 19:54:54 +0000 (12:54 -0700)]
read_sha1_file(): allow selective bypassing of replacement mechanism
The way "object replacement" mechanism was tucked to the read_sha1_file()
interface was suboptimal in a couple of ways:
- Callers that want it to die with useful diagnosis upon seeing a corrupt
object does not have a way to say that they do not want any object
replacement.
- Callers who do not want it to die but want to handle the errors
themselves are told to arrange to call read_object(), but the function
does not use the replacement mechanism, and also it is a file scope
static function that not many callers can call to begin with.
This adds a read_sha1_file_extended() that takes a set of flags; the
callers of read_sha1_file() passes a flag READ_SHA1_FILE_REPLACE to ask
for object replacement mechanism to kick in.
Later, we could add another flag bit to tell the function to return an
error instead of dying and then remove the misguided "call read_object()
yourself".
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 19:54:53 +0000 (12:54 -0700)]
inline lookup_replace_object() calls
In a repository without object replacement, lookup_replace_object() should
be a no-op. Check the flag "read_replace_refs" on the side of the caller,
and bypess a function call when we know we are not dealing with replacement.
Also, even when we are set up to replace objects, if we do not find any
replacement defined, flip that flag off to avoid function call overhead
for all the later object accesses.
As this change the semantics of the flag from "do we need read the
replacement definition?" to "do we need to check with the lookup table?"
the flag needs to be renamed later to something saner, e.g. "use_replace",
when the codebase is calmer, but not now.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 19:54:52 +0000 (12:54 -0700)]
read_sha1_file(): get rid of read_sha1_file_repl() madness
Most callers want to silently get a replacement object, and they do not
care what the real name of the replacement object is. Worse yet, no sane
interface to return the underlying object without replacement is provided.
Remove the function and make only the few callers that want the name of
the replacement object find it themselves.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 19:54:51 +0000 (12:54 -0700)]
t6050: make sure we test not just commit replacement
The replacement mechanism should affect all types of objects not
just commits, so make sure it deals with at least a blob.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 19:54:50 +0000 (12:54 -0700)]
Declare lookup_replace_object() in cache.h, not in commit.h
The declaration is misplaced as the replace API is supposed to affect
not just commits, but all types of objects.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 15 May 2011 03:44:09 +0000 (20:44 -0700)]
Merge branch 'maint'
* maint:
add, merge, diff: do not use strcasecmp to compare config variable names
Jonathan Nieder [Sat, 14 May 2011 20:19:21 +0000 (15:19 -0500)]
add, merge, diff: do not use strcasecmp to compare config variable names
The config machinery already makes section and variable names
lowercase when parsing them, so using strcasecmp for comparison just
feels wasteful. No noticeable change intended.
Noticed-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jens Lehmann [Sat, 14 May 2011 16:26:58 +0000 (18:26 +0200)]
Submodules: Don't parse .gitmodules when it contains, merge conflicts
Commands like "git status", "git diff" and "git fetch" would fail when the
.gitmodules file contained merge conflicts because the config parser would
call die() when hitting the conflict markers:
"fatal: bad config file line <n> in <path>/.gitmodules"
While this behavior was on the safe side, it is really unhelpful to the
user to have commands like status and diff fail, as these are needed to
find out what's going on. And the error message is only mildly helpful,
as it points to the right file but doesn't mention that it is unmerged.
Users of git gui were not shown any conflicts at all when this happened.
Improve the situation by checking if the index records .gitmodules as
unmerged. When that is the case we can't make any assumptions about the
configuration to be found there after the merge conflict is resolved by
the user, so assume that all recursion is disabled unless .git/config or
the global config say otherwise.
As soon as the merge conflict is resolved and the .gitmodules file has
been staged subsequent commands again honor any configuration done there.
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Heiko Voigt [Sat, 14 May 2011 16:26:30 +0000 (18:26 +0200)]
test that git status works with merge conflict in, .gitmodules
For example: Two users independently adding a submodule will result in a
merge conflict in .gitmodules. Since configuration of the status and
diff machinery depends on the file being parseable they currently
fail to produce useable output in case .gitmodules is marked with a
merge conflict.
Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Luke Diamand [Fri, 13 May 2011 19:46:00 +0000 (20:46 +0100)]
git-p4: warn if git authorship won't be retained
If the git commits you are submitting contain changes made by
other people, the authorship will not be retained. Change git-p4
to warn of this and to note that --preserve-user can be used
to solve the problem (if you have suitable permissions).
The warning can be disabled.
Add a test case and update documentation.
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 13 May 2011 18:14:07 +0000 (11:14 -0700)]
Update draft release notes to 1.7.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 13 May 2011 18:03:08 +0000 (11:03 -0700)]
Merge branch 'bf/commit-template-no-cleanup'
* bf/commit-template-no-cleanup:
Do not strip empty lines / trailing spaces from a commit message template
Junio C Hamano [Fri, 13 May 2011 18:02:47 +0000 (11:02 -0700)]
Merge branch 'jc/t1506-shell-param-expansion-gotcha'
* jc/t1506-shell-param-expansion-gotcha:
t1507: avoid "${parameter<op>'word'}" inside double-quotes
Junio C Hamano [Fri, 13 May 2011 18:02:40 +0000 (11:02 -0700)]
Merge branch 'rr/rerere-libify-clear-gc'
* rr/rerere-libify-clear-gc:
rerere: libify rerere_clear() and rerere_gc()
Junio C Hamano [Fri, 13 May 2011 18:02:29 +0000 (11:02 -0700)]
Merge branch 'js/maint-send-pack-stateless-rpc-deadlock-fix'
* js/maint-send-pack-stateless-rpc-deadlock-fix:
send-pack: unbreak push over stateless rpc
send-pack: avoid deadlock when pack-object dies early
Junio C Hamano [Fri, 13 May 2011 18:01:32 +0000 (11:01 -0700)]
Merge branch 'jh/dirstat-lines'
* jh/dirstat-lines:
Mark dirstat error messages for translation
Improve error handling when parsing dirstat parameters
New --dirstat=lines mode, doing dirstat analysis based on diffstat
Allow specifying --dirstat cut-off percentage as a floating point number
Add config variable for specifying default --dirstat behavior
Refactor --dirstat parsing; deprecate --cumulative and --dirstat-by-file
Make --dirstat=0 output directories that contribute < 0.1% of changes
Add several testcases for --dirstat and friends
Junio C Hamano [Fri, 13 May 2011 18:01:15 +0000 (11:01 -0700)]
Merge branch 'jc/fix-add-u-unmerged'
* jc/fix-add-u-unmerged:
Fix "add -u" that sometimes fails to resolve unmerged paths
Junio C Hamano [Fri, 13 May 2011 18:00:25 +0000 (11:00 -0700)]
Merge branch 'jn/setup-revisions-glob-and-friends-passthru'
* jn/setup-revisions-glob-and-friends-passthru:
revisions: allow --glob and friends in parse_options-enabled commands
revisions: split out handle_revision_pseudo_opt function
Junio C Hamano [Fri, 13 May 2011 17:59:57 +0000 (10:59 -0700)]
Merge branch 'cn/log-parse-opt'
* cn/log-parse-opt:
log: convert to parse-options
Junio C Hamano [Fri, 13 May 2011 17:58:10 +0000 (10:58 -0700)]
Merge branch 'maint'
* maint:
Prepare for 1.7.5.2
t5400: Fix a couple of typos
Conflicts:
RelNotes
Junio C Hamano [Fri, 13 May 2011 17:57:09 +0000 (10:57 -0700)]
Prepare for 1.7.5.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 13 May 2011 17:45:21 +0000 (10:45 -0700)]
Merge branch 'aw/maint-rebase-i-p-no-ff' into maint
* aw/maint-rebase-i-p-no-ff:
git-rebase--interactive.sh: preserve-merges fails on merges created with no-ff
Junio C Hamano [Fri, 13 May 2011 17:45:00 +0000 (10:45 -0700)]
Merge branch 'js/blame-parsename' into maint
* js/blame-parsename:
t/annotate-tests: Use echo & cat instead of sed
blame: tolerate bogus e-mail addresses a bit better
Junio C Hamano [Fri, 13 May 2011 17:44:54 +0000 (10:44 -0700)]
Merge branch 'gr/cvsimport-alternative-cvspass-location' into maint
* gr/cvsimport-alternative-cvspass-location:
Look for password in both CVS and CVSNT password files.
Junio C Hamano [Fri, 13 May 2011 17:44:46 +0000 (10:44 -0700)]
Merge branch 'cj/p4merge' into maint
* cj/p4merge:
Pass empty file to p4merge where no base is suitable.
Junio C Hamano [Fri, 13 May 2011 17:44:19 +0000 (10:44 -0700)]
Merge branch 'jk/merge-one-file-working-tree' into maint
* jk/merge-one-file-working-tree:
merge-one-file: fix broken merges with alternate work trees
add tests for merge-index / merge-one-file
Junio C Hamano [Fri, 13 May 2011 17:41:54 +0000 (10:41 -0700)]
Merge branch 'jc/fix-diff-files-unmerged' into maint
* jc/fix-diff-files-unmerged:
diff-files: show unmerged entries correctly
diff: remove often unused parameters from diff_unmerge()
diff.c: return filepair from diff_unmerge()
test: use $_z40 from test-lib
Junio C Hamano [Fri, 13 May 2011 17:41:24 +0000 (10:41 -0700)]
Merge branch 'mz/maint-rename-unmerged' into maint
* mz/maint-rename-unmerged:
diffcore-rename: don't consider unmerged path as source
Johan Herland [Fri, 13 May 2011 16:43:29 +0000 (18:43 +0200)]
t5400: Fix a couple of typos
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 13 May 2011 05:36:41 +0000 (22:36 -0700)]
Merge branch 'nd/struct-pathspec'
* nd/struct-pathspec:
Tweak t3102-ls-tree-wildcards to run on Windows
Johannes Sixt [Thu, 12 May 2011 08:37:22 +0000 (10:37 +0200)]
Tweak t3102-ls-tree-wildcards to run on Windows
The test case fails on Windows, because "a*" is an invalid file name.
Therefore, use "a[a]" instead.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 11 May 2011 22:05:01 +0000 (15:05 -0700)]
Merge branch 'jc/maint-1.7.4-pathspec-stdin-and-cmdline'
Update the fix for 1.7.5 maintenance track.
* jc/maint-1.7.4-pathspec-stdin-and-cmdline:
setup_revisions(): take pathspec from command line and --stdin correctly
Junio C Hamano [Wed, 11 May 2011 21:57:45 +0000 (14:57 -0700)]
Merge branch 'jc/maint-1.6.6-pathspec-stdin-and-cmdline'
Update the fix for 1.7.4 maintenance track.
* jc/maint-1.6.6-pathspec-stdin-and-cmdline:
setup_revisions(): take pathspec from command line and --stdin correctly
Junio C Hamano [Wed, 11 May 2011 21:57:45 +0000 (14:57 -0700)]
Merge branch 'jc/maint-1.6.6-pathspec-stdin-and-cmdline'
Update the fix for 1.7.4 maintenance track.
* jc/maint-1.6.6-pathspec-stdin-and-cmdline:
setup_revisions(): take pathspec from command line and --stdin correctly
Junio C Hamano [Wed, 11 May 2011 21:01:19 +0000 (14:01 -0700)]
setup_revisions(): take pathspec from command line and --stdin correctly
When the command line has "--" disambiguator, we take the remainder of
argv[] as "prune_data", but when --stdin is given at the same time,
we need to append to the existing prune_data and end up attempting to
realloc(3) it. That would not work.
Fix it by consistently using append_prune_data() throughout the input
processing. Also avoid counting the number of existing paths in the
function over and over again.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 11 May 2011 18:56:11 +0000 (11:56 -0700)]
Update draft release notes to 1.7.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 11 May 2011 18:38:39 +0000 (11:38 -0700)]
Merge branch 'jn/gitweb-dependency'
* jn/gitweb-dependency:
Remove gitweb/gitweb.cgi and other legacy targets from main Makefile
git-instaweb: Simplify build dependency on gitweb
Junio C Hamano [Wed, 11 May 2011 18:38:36 +0000 (11:38 -0700)]
Merge branch 'jc/maint-branch-mergeoptions'
* jc/maint-branch-mergeoptions:
merge: make branch.<name>.mergeoptions correctly override merge.<option>
Conflicts:
builtin/merge.c
Junio C Hamano [Wed, 11 May 2011 18:38:10 +0000 (11:38 -0700)]
Merge branch 'jn/maint-test-merge-verify-parents'
* jn/maint-test-merge-verify-parents:
tests: teach verify_parents to check for extra parents
tests: eliminate unnecessary setup test assertions