Code

git.git
15 years agoGet rid of the last remnants of GIT_CONFIG_LOCAL v1.6.1-rc3
Johannes Schindelin [Sun, 14 Dec 2008 22:10:52 +0000 (23:10 +0100)]
Get rid of the last remnants of GIT_CONFIG_LOCAL

In dc871831(Only use GIT_CONFIG in "git config", not other programs),
GIT_CONFIG_LOCAL was rested in peace, in favor of not reading
/etc/gitconfig and $HOME/.gitconfig at all when GIT_CONFIG is set.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: Describe git-gui Tools menu configuration options.
Alexander Gavrilov [Sun, 14 Dec 2008 19:44:32 +0000 (22:44 +0300)]
Documentation: Describe git-gui Tools menu configuration options.

Now git gui has a customizable Tools menu, so this adds
information about variables that are used to configure it.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-fast-import possible memory corruption problem
YONETANI Tomokazu [Sun, 14 Dec 2008 02:08:22 +0000 (11:08 +0900)]
git-fast-import possible memory corruption problem

Internal "allocate in bulk, we will never free this memory anyway"
allocator used in fast-import had a logic to round up the size of the
requested memory block in a wrong place (it computed if the available
space is enough to fit the request first, and then carved a chunk of
memory by size rounded up to the alignment, which could go beyond the
actually available space).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobuiltin-commit: remove unused message variable
Markus Heidelberg [Sat, 13 Dec 2008 19:05:34 +0000 (20:05 +0100)]
builtin-commit: remove unused message variable

builtin-commit uses commit_tree() from builtin-commit-tree since
6bb6b03 (builtin-commit: use commit_tree(), 2008-09-10), where the
same message is used.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Sat, 13 Dec 2008 05:50:34 +0000 (21:50 -0800)]
Merge branch 'maint'

* maint:
  git-config.txt: fix a typo

15 years agogit-branch: display sha1 on branch deletion
Brandon Casey [Fri, 12 Dec 2008 23:20:07 +0000 (17:20 -0600)]
git-branch: display sha1 on branch deletion

Make it easier to recover from a mistaken branch deletion by displaying the
sha1 of the branch's tip commit.

Update t3200 test to match the change in output.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-config.txt: fix a typo
Jim Meyering [Fri, 12 Dec 2008 09:00:41 +0000 (10:00 +0100)]
git-config.txt: fix a typo

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Thu, 11 Dec 2008 08:36:31 +0000 (00:36 -0800)]
Merge branch 'maint'

* maint:
  fsck: reduce stack footprint
  make sure packs to be replaced are closed beforehand

15 years agofsck: reduce stack footprint
Linus Torvalds [Thu, 11 Dec 2008 03:44:37 +0000 (19:44 -0800)]
fsck: reduce stack footprint

The logic to mark all objects that are reachable from tips of refs were
implemented as a set of recursive functions.  In a repository with a deep
enough history, this can easily eat up all the available stack space.

Restructure the code to require less stackspace by using an object array
to keep track of the objects that still need to be processed.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agorebase: improve error messages about dirty state
Jeff King [Wed, 10 Dec 2008 09:25:19 +0000 (04:25 -0500)]
rebase: improve error messages about dirty state

If you have unstaged changes in your working tree and try to
rebase, you will get the cryptic "foo: needs update"
message, but nothing else.  If you have staged changes, you
get "your index is not up-to-date".

Let's improve this situation in two ways:

 - for unstaged changes, let's also tell them we are
   canceling the rebase, and why (in addition to the "needs
   update" lines)

 - for the staged changes case, let's use language that is a
   little more clear to the user: their index contains
   uncommitted changes

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agomake sure packs to be replaced are closed beforehand
Nicolas Pitre [Tue, 9 Dec 2008 19:26:52 +0000 (14:26 -0500)]
make sure packs to be replaced are closed beforehand

Especially on Windows where an opened file cannot be replaced, make
sure pack-objects always close packs it is about to replace. Even on
non Windows systems, this could save potential bad results if ever
objects were to be read from the new pack file using offset from the old
index.

This should fix t5303 on Windows.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Tested-by: Johannes Sixt <j6t@kdbg.org> (MinGW)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix typo in comment in builtin-add.c
Alexander Potashev [Wed, 10 Dec 2008 22:27:44 +0000 (01:27 +0300)]
Fix typo in comment in builtin-add.c

Reported-by: Tim Daly <daly@axiom-developer.org>
Signed-off-by: Alexander Potashev <aspotashev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix t4031
Junio C Hamano [Wed, 10 Dec 2008 19:39:07 +0000 (11:39 -0800)]
Fix t4031

When I tweaked the patch to use $SHELL_PATH instead of a hard-coded
"#!/bin/sh" to produce 3aa1f7c (diff: respect textconv in rewrite diffs,
2008-12-09), I screwed up.  This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 10 Dec 2008 06:41:27 +0000 (22:41 -0800)]
Merge branch 'maint'

* maint:
  work around Python warnings from AsciiDoc
  git-svn: Make following parents atomic

15 years agodiff: respect textconv in rewrite diffs
Jeff King [Tue, 9 Dec 2008 08:13:21 +0000 (03:13 -0500)]
diff: respect textconv in rewrite diffs

Currently we just skip rewrite diffs for binary files; this
patch makes an exception for files which will be textconv'd,
and actually performs the textconv before generating the
diff.

Conceptually, rewrite diffs should be in the exact same
format as the a non-rewrite diff, except that we refuse to
share any context. Thus it makes very little sense for "git
diff" to show a textconv'd diff, but for "git diff -B" to
show "Binary files differ".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff: fix handling of binary rewrite diffs
Jeff King [Tue, 9 Dec 2008 08:12:28 +0000 (03:12 -0500)]
diff: fix handling of binary rewrite diffs

The current emit_rewrite_diff code always writes a text patch without
checking whether the content is binary. This means that if you end up with
a rewrite diff for a binary file, you get lots of raw binary goo in your
patch.

Instead, if we have binary files, then let's just skip emit_rewrite_diff
altogether. We will already have shown the "dissimilarity index" line, so
it is really about the diff contents. If binary diffs are turned off, the
"Binary files a/file and b/file differ" message should be the same in
either case. If we do have binary patches turned on, there isn't much
point in making a less-efficient binary patch that does a total rewrite;
no human is going to read it, and since binary patches don't apply with
any fuzz anyway, the result of application should be the same.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix typos in documentation
Alexander Potashev [Tue, 9 Dec 2008 17:26:22 +0000 (20:26 +0300)]
Fix typos in documentation

Signed-off-by: Alexander Potashev <aspotashev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-p4: Fix regression in p4Where method.
Tor Arvid Lund [Tue, 9 Dec 2008 15:41:50 +0000 (16:41 +0100)]
git-p4: Fix regression in p4Where method.

Unfortunately, I introduced a bug in commit 7f705dc36 (git-p4: Fix bug in
p4Where method). This happens because sometimes the result from
"p4 where <somepath>" doesn't contain a "depotFile" key, but instead a
"data" key that needs further parsing. This commit should ensure that both
of these cases are checked.

Signed-off-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoImprove language in git-merge.txt and related docs
Ralf Wildenhues [Tue, 9 Dec 2008 06:23:51 +0000 (07:23 +0100)]
Improve language in git-merge.txt and related docs

Improve some minor language and format issues like hyphenation,
phrases, spacing, word order, comma, attributes.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agowork around Python warnings from AsciiDoc
Junio C Hamano [Mon, 8 Dec 2008 02:38:46 +0000 (18:38 -0800)]
work around Python warnings from AsciiDoc

It appears that a reference to an anchor defined as [[anchor-name]] from
another place using <<anchor-name>> syntax, when the anchor name contains
a string "-with-" in its name, triggers these warnings from Python
interpreter.

  asciidoc -b docbook -d book user-manual.txt
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6

There currently is no reference to "Finding comments with given content",
but for consistency and for futureproofing, the anchor is also updated as
the other ones that are actually used and trigger these warnings.

Signed-off-by: Junio C Hamano <junio@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDefine linkgit macro in [macros] section
Alexey Borzenkov [Mon, 8 Dec 2008 18:29:09 +0000 (21:29 +0300)]
Define linkgit macro in [macros] section

Starting with asciidoc 8.3.0 linkgit macro is no longer recognized by
asciidoc and user guide suggests
(http://www.methods.co.nz/asciidoc/userguide.html#_macro_definitions)
that macros are supposed to be defined in [macros] section. I'm not
sure whether undefined linkgit macro was working by pure chance or it
is a regression in asciidoc 8.3.0, but this patch adds proper
definition for the linkgit macro, allowing it to work on 8.3.0.

Signed-off-by: Alexey Borzenkov <snaury@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-svn: Make following parents atomic
Deskin Miller [Mon, 8 Dec 2008 13:31:31 +0000 (08:31 -0500)]
git-svn: Make following parents atomic

find_parent_branch generates branch@rev type branches when one has to
look back through SVN history to properly get the history for a branch
copied from somewhere not already being tracked by git-svn.  If in the
process of fetching this history, git-svn is interrupted, then when one
fetches again, it will use whatever was last fetched as the parent
commit and fail to fetch any more history which it didn't get to before
being terminated.  This is especially troubling in that different
git-svn copies of the same SVN repository can end up with different
commit sha1s, incorrectly showing the history as divergent and
precluding easy collaboration using git push and fetch.

To fix this, when we initialise the Git::SVN object $gs to search for
and perhaps fetch history, we check if there are any commits in SVN in
the range between the current revision $gs is at, and the top revision
for which we were asked to fill history.  If there are commits we're
missing in that range, we continue the fetch from the current revision
to the top, properly getting all history before using it as the parent
for the branch we're trying to create.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: Fix bug in insert_file() subroutine
Jakub Narebski [Mon, 8 Dec 2008 13:13:21 +0000 (14:13 +0100)]
gitweb: Fix bug in insert_file() subroutine

In insert_file() subroutine (which is used to insert HTML fragments as
custom header, footer, hometext (for projects list view), and per
project README.html (for summary view)) we used:

     map(to_utf8, <$fd>);

This doesn't work, and other form has to be used:

     map { to_utf8($_) } <$fd>;

Now with test for t9600 added, for $GIT_DIR/README.html.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff: allow turning on textconv explicitly for plumbing
Jeff King [Mon, 8 Dec 2008 02:57:01 +0000 (21:57 -0500)]
diff: allow turning on textconv explicitly for plumbing

Some history viewers use the diff plumbing to generate diffs
rather than going through the "git diff" porcelain.
Currently, there is no way for them to specify that they
would like to see the text-converted version of the diff.

This patch adds a "--textconv" option to allow such a
plumbing user to allow text conversion.  The user can then
tell the viewer whether or not they would like text
conversion enabled.

While it may be tempting add a configuration option rather
than requiring each plumbing user to be configured to pass
--textconv, that is somewhat dangerous. Text-converted diffs
generally cannot be applied directly, so each plumbing user
should "opt in" to generating such a diff, either by
explicit request of the user or by confirming that their
output will not be fed to patch.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoreorder ALLOW_TEXTCONV option setting
Jeff King [Mon, 8 Dec 2008 02:54:17 +0000 (21:54 -0500)]
reorder ALLOW_TEXTCONV option setting

Right now for the diff porcelain and the log family, we
call:

  init_revisions();
  setup_revisions();
  DIFF_OPT_SET(ALLOW_TEXTCONV);

However, that means textconv will _always_ be on, instead of
being a default that can be manipulated with
setup_revisions. Instead, we want:

  init_revisions();
  DIFF_OPT_SET(ALLOW_TEXTCONV);
  setup_revisions();

which is what this patch does.

We'll go ahead and move the callsite in wt-status, also;
even though the user can't pass any options here, it is a
cleanup that will help avoid any surprise later if the
setup_revisions line is changed.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoread-cache.c: typofix in comment
Junio C Hamano [Sat, 6 Dec 2008 01:54:11 +0000 (17:54 -0800)]
read-cache.c: typofix in comment

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobuiltin-checkout.c: check error return from read_cache()
Junio C Hamano [Sat, 6 Dec 2008 01:54:10 +0000 (17:54 -0800)]
builtin-checkout.c: check error return from read_cache()

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoPoint "stale" 1.6.0.5 documentation from the main git documentation page v1.6.1-rc2
Junio C Hamano [Mon, 8 Dec 2008 01:34:14 +0000 (17:34 -0800)]
Point "stale" 1.6.0.5 documentation from the main git documentation page

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRevert "git-stash: use git rev-parse -q"
Junio C Hamano [Mon, 8 Dec 2008 01:30:35 +0000 (17:30 -0800)]
Revert "git-stash: use git rev-parse -q"

This reverts commit 757c7f60a78004fc3d0ea62f44320d54ef430c10 as an
unnecessary error message to pop up when the last stash entry is dropped.

It simply is not worth the aggravation.

15 years agoUpdate draft release notes for 1.6.1
Junio C Hamano [Sun, 7 Dec 2008 23:06:38 +0000 (15:06 -0800)]
Update draft release notes for 1.6.1

A handful of fixes have been backmerged to 'maint' and are now contained
in 1.6.0.X series as the result, so drop them from this document.

Also contains typofix and duplicate removal pointed out by
Bjørn Lindeijer and Jakub Narebski.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Sun, 7 Dec 2008 23:13:02 +0000 (15:13 -0800)]
Merge branch 'maint'

* maint:
  GIT 1.6.0.5
  "git diff <tree>{3,}": do not reverse order of arguments
  tag: delete TAG_EDITMSG only on successful tag
  gitweb: Make project specific override for 'grep' feature work
  http.c: use 'git_config_string' to get 'curl_http_proxy'
  fetch-pack: Avoid memcpy() with src==dst

15 years agoGIT 1.6.0.5 v1.6.0.5
Junio C Hamano [Sun, 7 Dec 2008 11:03:16 +0000 (03:03 -0800)]
GIT 1.6.0.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years ago"git diff <tree>{3,}": do not reverse order of arguments
Matt McCutchen [Sat, 11 Oct 2008 01:56:15 +0000 (21:56 -0400)]
"git diff <tree>{3,}": do not reverse order of arguments

According to the message of commit 0fe7c1de16f71312e6adac4b85bddf0d62a47168,
"git diff" with three or more trees expects the merged tree first followed by
the parents, in order.  However, this command reversed the order of its
arguments, resulting in confusing diffs.  A comment /* Again, the revs are all
reverse */ suggested there was a reason for this, but I can't figure out the
reason, so I removed the reversal of the arguments.  Test case included.

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agotag: delete TAG_EDITMSG only on successful tag
Jeff King [Sat, 6 Dec 2008 19:40:34 +0000 (14:40 -0500)]
tag: delete TAG_EDITMSG only on successful tag

The user may put some effort into writing an annotated tag
message. When the tagging process later fails (which can
happen fairly easily, since it may be dependent on gpg being
correctly configured and used), there is no record left on
disk of the tag message.

Instead, let's keep the TAG_EDITMSG file around until we are
sure the tag has been created successfully. If we die
because of an error, the user can recover their text from
that file. Leaving the file in place causes no conflicts;
it will be silently overwritten by the next annotated tag
creation.

This matches the behavior of COMMIT_EDITMSG, which stays
around in case of error.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: Make project specific override for 'grep' feature work
Jakub Narebski [Sun, 7 Dec 2008 09:36:36 +0000 (10:36 +0100)]
gitweb: Make project specific override for 'grep' feature work

The 'grep' feature was marked in the comments as having project
specific config, but it lacked 'sub' key required for it to work.

Kind-of-Noticed-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agohttp.c: use 'git_config_string' to get 'curl_http_proxy'
Miklos Vajna [Sun, 7 Dec 2008 00:45:37 +0000 (01:45 +0100)]
http.c: use 'git_config_string' to get 'curl_http_proxy'

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofetch-pack: Avoid memcpy() with src==dst
Thomas Rast [Sat, 6 Dec 2008 20:50:09 +0000 (21:50 +0100)]
fetch-pack: Avoid memcpy() with src==dst

memcpy() may only be used for disjoint memory areas, but when invoked
from cmd_fetch_pack(), we have my_args == &args.  (The argument cannot
be removed entirely because transport.c invokes with its own
variable.)

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate draft release notes to 1.6.1
Junio C Hamano [Sat, 6 Dec 2008 04:02:55 +0000 (20:02 -0800)]
Update draft release notes to 1.6.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'jc/am-options'
Junio C Hamano [Sat, 6 Dec 2008 04:02:15 +0000 (20:02 -0800)]
Merge branch 'jc/am-options'

* jc/am-options:
  git-am: rename apply_opt_extra file to apply-opt
  Test that git-am does not lose -C/-p/--whitespace options
  git-am: propagate --3way options as well
  git-am: propagate -C<n>, -p<n> options as well
  git-am --whitespace: do not lose the command line option

15 years agogit-am: rename apply_opt_extra file to apply-opt
Junio C Hamano [Fri, 5 Dec 2008 19:19:43 +0000 (11:19 -0800)]
git-am: rename apply_opt_extra file to apply-opt

All other state files use dash in their names, not underscores.
Also, there is no reason to call this "extra".  Drop it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoTest that git-am does not lose -C/-p/--whitespace options
Junio C Hamano [Fri, 5 Dec 2008 01:08:48 +0000 (17:08 -0800)]
Test that git-am does not lose -C/-p/--whitespace options

These tests make sure that "git am" does not lose command line options
specified when it was started, after it is interrupted by a patch that
does not apply earlier in the series.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-am: propagate --3way options as well
Junio C Hamano [Thu, 4 Dec 2008 23:38:27 +0000 (15:38 -0800)]
git-am: propagate --3way options as well

The reasoning is the same as the previous patch, where we made -C<n>
and -p<n> propagate across a failure.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-am: propagate -C<n>, -p<n> options as well
Junio C Hamano [Thu, 4 Dec 2008 23:38:27 +0000 (15:38 -0800)]
git-am: propagate -C<n>, -p<n> options as well

These options are meant to deal with patches that do not apply cleanly
due to the differences between the version the patch was based on and
the version "git am" is working on.

Because a series of patches applied in the same "git am" run tends to
come from the same source, it is more useful to propagate these options
after the application stops.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-am --whitespace: do not lose the command line option
Junio C Hamano [Thu, 4 Dec 2008 23:03:28 +0000 (15:03 -0800)]
git-am --whitespace: do not lose the command line option

When you start "git am --whitespace=fix" and the patch application process
is interrupted by an unapplicable patch early in the series, after
fixing the offending patch, the remainder of the patch should be processed
still with --whitespace=fix when restarted with "git am --resolved" (or
dropping the offending patch with "git am --skip").

The breakage was introduced by the commit 67dad68 (add -C[NUM] to git-am,
2007-02-08); this should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-p4: Fix bug in p4Where method.
Tor Arvid Lund [Thu, 4 Dec 2008 13:37:33 +0000 (14:37 +0100)]
git-p4: Fix bug in p4Where method.

When running:

p4 where //depot/SomePath/...

The result can in some situations look like:

//depot/SomePath/... //client/SomePath/... /home/user/p4root/SomePath/...
-//depot/SomePath/UndesiredSubdir/... //client/SomePath/UndesiredSubdir/... /home/user/p4root/SomePath/UndesiredSubdir/...

This depends on the users Client view. The current p4Where method will now
return /home/user/p4root/SomePath/UndesiredSubdir/... which is not what we
want. This patch loops through the results from "p4 where", and picks the one
where the depotFile exactly matches the given depotPath (//depot/SomePath/...
in this example).

Signed-off-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoReport symlink failures in merge-recursive
Alex Riesen [Fri, 5 Dec 2008 00:39:14 +0000 (01:39 +0100)]
Report symlink failures in merge-recursive

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake chdir failures visible
Alex Riesen [Fri, 5 Dec 2008 00:36:46 +0000 (01:36 +0100)]
Make chdir failures visible

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake some of fwrite/fclose/write/close failures visible
Alex Riesen [Fri, 5 Dec 2008 00:35:48 +0000 (01:35 +0100)]
Make some of fwrite/fclose/write/close failures visible

So that full filesystem conditions or permissions problems won't go
unnoticed.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'dm/svn-remote'
Junio C Hamano [Thu, 4 Dec 2008 06:44:26 +0000 (22:44 -0800)]
Merge branch 'dm/svn-remote'

* dm/svn-remote:
  git-svn: Make branch use correct svn-remote

15 years agoMerge branch 'jn/gitweb-utf8'
Junio C Hamano [Thu, 4 Dec 2008 06:03:09 +0000 (22:03 -0800)]
Merge branch 'jn/gitweb-utf8'

* jn/gitweb-utf8:
  gitweb: Fix handling of non-ASCII characters in inserted HTML files

15 years agoadd stage to gitignore
Jeff King [Thu, 4 Dec 2008 03:42:03 +0000 (22:42 -0500)]
add stage to gitignore

This is a generated builtin since 24b1f65f (Install git-stage in
exec-path).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agosubmodule: use git rev-parse -q
Miklos Vajna [Wed, 3 Dec 2008 13:26:52 +0000 (14:26 +0100)]
submodule: use git rev-parse -q

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agorebase: use git rev-parse -q
Miklos Vajna [Wed, 3 Dec 2008 13:26:51 +0000 (14:26 +0100)]
rebase: use git rev-parse -q

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopull: use git rev-parse -q
Miklos Vajna [Wed, 3 Dec 2008 13:26:50 +0000 (14:26 +0100)]
pull: use git rev-parse -q

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agolost-found: use git rev-parse -q
Miklos Vajna [Wed, 3 Dec 2008 13:26:49 +0000 (14:26 +0100)]
lost-found: use git rev-parse -q

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofilter-branch: use git rev-parse -q
Miklos Vajna [Wed, 3 Dec 2008 13:26:48 +0000 (14:26 +0100)]
filter-branch: use git rev-parse -q

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-svn: Make branch use correct svn-remote
Deskin Miller [Tue, 2 Dec 2008 02:43:00 +0000 (21:43 -0500)]
git-svn: Make branch use correct svn-remote

The 'branch' subcommand incorrectly had the svn-remote to use hardcoded
as 'svn', the default remote name.  This meant that branches derived
from other svn-remotes would try to use the branch and tag configuration
for the 'svn' remote, potentially copying would-be branches to the wrong
place in SVN, into the branch namespace for another project.

Fix this by using the remote name extracted from the svn info for the
specified git ref.  Add a testcase for this behaviour.

[jc: squashed in a fix to test from Michael J Gruber for older svn (1.4)]

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'jc/rm-i-t-a'
Junio C Hamano [Wed, 3 Dec 2008 08:38:12 +0000 (00:38 -0800)]
Merge branch 'jc/rm-i-t-a'

* jc/rm-i-t-a:
  git add --intent-to-add: do not let an empty blob be committed by accident
  git add --intent-to-add: fix removal of cached emptiness
  builtin-rm.c: explain and clarify the "local change" logic
  Extend index to save more flags

15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 3 Dec 2008 08:34:58 +0000 (00:34 -0800)]
Merge branch 'maint'

* maint:
  xdiff: give up scanning similar lines early

15 years agoInstall git-stage in exec-path
Junio C Hamano [Wed, 3 Dec 2008 08:30:34 +0000 (00:30 -0800)]
Install git-stage in exec-path

Earlier the plan was to eventually eradicate git-foo executables from the
filesystem for all the built-in commands, but when we released 1.6.0 we
decided not to do so.  Instead, it has been promised that by prepending
the output from $(git --exec-path) to your $PATH, you can keep using the
dashed form of commands.

This also allows "git stage" to appear in the autogenerated command list,
which is used to offer man pages by "git help" command.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'jk/maint-commit-v-strip' into maint
Junio C Hamano [Wed, 3 Dec 2008 07:47:25 +0000 (23:47 -0800)]
Merge branch 'jk/maint-commit-v-strip' into maint

* jk/maint-commit-v-strip:
  commit: Fix stripping of patch in verbose mode.

15 years agoxdiff: give up scanning similar lines early
Davide Libenzi [Sat, 8 Nov 2008 05:24:33 +0000 (21:24 -0800)]
xdiff: give up scanning similar lines early

In a corner case of large files whose lines do not match uniquely, the
loop to eliminate a line that matches multiple locations adjacent to a run
of lines that do not uniquely match wasted too much cycles.  Fix this by
giving up early after scanning 100 lines in both direction.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'bc/maint-keep-pack' into maint
Junio C Hamano [Wed, 3 Dec 2008 07:00:04 +0000 (23:00 -0800)]
Merge branch 'bc/maint-keep-pack' into maint

* bc/maint-keep-pack:
  repack: only unpack-unreachable if we are deleting redundant packs
  t7700: test that 'repack -a' packs alternate packed objects
  pack-objects: extend --local to mean ignore non-local loose objects too
  sha1_file.c: split has_loose_object() into local and non-local counterparts
  t7700: demonstrate mishandling of loose objects in an alternate ODB
  builtin-gc.c: use new pack_keep bitfield to detect .keep file existence
  repack: do not fall back to incremental repacking with [-a|-A]
  repack: don't repack local objects in packs with .keep file
  pack-objects: new option --honor-pack-keep
  packed_git: convert pack_local flag into a bitfield and add pack_keep
  t7700: demonstrate mishandling of objects in packs with a .keep file

15 years agoMerge branch 'js/mingw-rename-fix' into maint
Junio C Hamano [Wed, 3 Dec 2008 06:38:07 +0000 (22:38 -0800)]
Merge branch 'js/mingw-rename-fix' into maint

* js/mingw-rename-fix:
  compat/mingw.c: Teach mingw_rename() to replace read-only files

15 years agogitweb: Fix handling of non-ASCII characters in inserted HTML files
Jakub Narebski [Mon, 1 Dec 2008 18:01:42 +0000 (19:01 +0100)]
gitweb: Fix handling of non-ASCII characters in inserted HTML files

Use new insert_file() subroutine to insert HTML chunks from external
files: $site_header, $home_text (by default indextext.html),
$site_footer, and $projectroot/$project/REAME.html.

All non-ASCII chars of those files will be broken by Perl IO layer
without decoding to utf8, so insert_file() does to_utf8() on each
printed line; alternate solution would be to open those files with
"binmode $fh, ':utf8'", or even all files with "use open qw(:std :utf8)".

Note that inserting README.html lost one of checks for simplicity.

Noticed-by: Tatsuki Sugiura <sugi@nemui.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-stash: use git rev-parse -q
Miklos Vajna [Tue, 2 Dec 2008 00:56:09 +0000 (01:56 +0100)]
git-stash: use git rev-parse -q

Don't redirect stderr to /dev/null, use -q to suppress the output on
stderr.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 3 Dec 2008 00:13:21 +0000 (16:13 -0800)]
Merge branch 'maint'

* maint:
  User's Manual: remove duplicated url at the end of Appendix B

15 years agot4030-diff-textconv: Make octal escape sequence more portable
Johannes Sixt [Tue, 2 Dec 2008 08:31:01 +0000 (09:31 +0100)]
t4030-diff-textconv: Make octal escape sequence more portable

There are printfs around that do not grok '\1', but need '\01'.
Discovered on AIX 4.3.x.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd a built-in alias for 'stage' to the 'add' command
Scott Chacon [Tue, 2 Dec 2008 06:14:55 +0000 (22:14 -0800)]
Add a built-in alias for 'stage' to the 'add' command

This comes from conversation at the GitTogether where we thought it would
be helpful to be able to teach people to 'stage' files because it tends
to cause confusion when told that they have to keep 'add'ing them.

This continues the movement to start referring to the index as a
staging area (eg: the --staged alias to 'git diff'). Also adds a
doc file for 'git stage' that basically points to the docs for
'git add'.

Signed-off-by: Scott Chacon <schacon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd backslash to list of 'crud' characters in real name
Linus Torvalds [Mon, 1 Dec 2008 16:41:50 +0000 (08:41 -0800)]
Add backslash to list of 'crud' characters in real name

We remove crud characters at the beginning and end of real-names so that
when we see email addresses like

From: "David S. Miller" <davem@davemloft.net>

we drop the quotes around the name when we parse that and split it up into
name and email.

However, the list of crud characters was basically just a random list of
common things that are found around names, and it didn't contain the
backslash character that some insane scripts seem to use when quoting
things. So now the kernel has a number of authors listed like

Author: \"Rafael J. Wysocki\ <rjw@sisk.pl>

because the author name had started out as

From: \"Rafael J. Wysocki\" <rjw@sisk.pl>

and the only "crud" character we noticed and removed was the final
double-quote at the end.

We should probably do better quote removal from names anyway, but this is
the minimal obvious patch.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMakefile: introduce NO_PTHREADS
Junio C Hamano [Sat, 15 Nov 2008 12:08:14 +0000 (04:08 -0800)]
Makefile: introduce NO_PTHREADS

This introduces make variable NO_PTHREADS for platforms that lack the
support for pthreads library or people who do not want to use it for
whatever reason.  When defined, it makes the multi-threaded index
preloading into a no-op, and also disables threaded delta searching by
pack-objects.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Mike Ralphson <mike@abacus.co.uk>
Tested-by: Johannes Sixt <j6t@kdbg.org> (AIX 4.3.x)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: describe how to "bisect skip" a range of commits
Christian Couder [Tue, 2 Dec 2008 13:53:51 +0000 (14:53 +0100)]
Documentation: describe how to "bisect skip" a range of commits

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
15 years agobisect: fix "git bisect skip <commit>" and add tests cases
Christian Couder [Tue, 2 Dec 2008 13:53:47 +0000 (14:53 +0100)]
bisect: fix "git bisect skip <commit>" and add tests cases

The patch that allows "git bisect skip" to be passed a range of
commits using the "<commit1>..<commit2>" notation is flawed because
it introduces a regression when it was passed a simple rev or commit.

"git bisect skip <commit>" doesn't work any more, because <commit>
is quoted but not properly unquoted.

This patch fixes that and add tests cases to better check when it is
passed commits and range of commits.

While at it, this patch also properly quotes the non range arguments
using the "sq" function.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
15 years agoUpdate comment on gitweb_check/get_feature
Giuseppe Bilotta [Tue, 2 Dec 2008 22:57:28 +0000 (14:57 -0800)]
Update comment on gitweb_check/get_feature

This is taken from a patch from Giuseppe but unfortunately it came
too late to replace the series that was already on "next".  The comment
he updated here is better than the version we had previously, so I am
cherry-picking this bit not to lose it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'gb/gitweb-feature'
Junio C Hamano [Tue, 2 Dec 2008 23:27:22 +0000 (15:27 -0800)]
Merge branch 'gb/gitweb-feature'

* gb/gitweb-feature:
  gitweb: make gitweb_check_feature a boolean wrapper
  gitweb: rename gitweb_check_feature to gitweb_get_feature
  gitweb: fix 'ctags' feature check and others

15 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Tue, 2 Dec 2008 23:27:05 +0000 (15:27 -0800)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.

15 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Tue, 2 Dec 2008 23:25:48 +0000 (15:25 -0800)]
Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
  gitk: Add a menu option to start git gui
  gitk: Make line origin search update the busy status
  gitk: Update German translation
  gitk: Fix bug in accessing undefined "notflag" variable
  gitk: Highlight only when search type is "containing:".
  gitk: Fix context menu items for generating diffs when in tree mode

15 years agoUser's Manual: remove duplicated url at the end of Appendix B
Miklos Vajna [Mon, 1 Dec 2008 18:50:02 +0000 (19:50 +0100)]
User's Manual: remove duplicated url at the end of Appendix B

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.
Mark Burton [Tue, 2 Dec 2008 15:15:02 +0000 (15:15 +0000)]
git-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.

When the destination repository is a mirror, this function goofed by still
passing a refspec to git-push. Now it notices that the remote is a mirror
and holds the refspec.

Signed-off-by: Mark Burton <markb@ordern.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogitk: Add a menu option to start git gui
Alexander Gavrilov [Thu, 13 Nov 2008 20:12:42 +0000 (23:12 +0300)]
gitk: Add a menu option to start git gui

Git gui already has menu commands to start gitk, and this makes the
relation symmetric.

[paulus@samba.org - changed "Git Gui" in the menu item to "git gui"]

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agogitk: Make line origin search update the busy status
Alexander Gavrilov [Mon, 1 Dec 2008 17:30:09 +0000 (20:30 +0300)]
gitk: Make line origin search update the busy status

Currently the 'show origin of this line' feature does not update the
status field of the gitk window, so it is not evident that any
processing is going on.  It may seem at first that clicking the item
had no effect.

This commit adds calls to set and clear the busy status with an
appropriate title, similar to other search commands.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agogitk: Update German translation
Christian Stimming [Sat, 25 Oct 2008 11:25:35 +0000 (13:25 +0200)]
gitk: Update German translation

This takes into account the most recent po file merge.

Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agogitk: Fix bug in accessing undefined "notflag" variable
Paul Mackerras [Mon, 1 Dec 2008 22:17:46 +0000 (09:17 +1100)]
gitk: Fix bug in accessing undefined "notflag" variable

As pointed out by Johannes Sixt and Alexander Gavrilov, commit
2958228430b63f2e38c55519d1f98d8d6d9e23f3 ("gitk: Fix switch statement
in parseviewargs") exposed a latent bug in that $notflag was never
initialized.  Since it isn't used either, this removes it entirely.

Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agogitk: Highlight only when search type is "containing:".
Paul Mackerras [Mon, 1 Dec 2008 22:02:46 +0000 (09:02 +1100)]
gitk: Highlight only when search type is "containing:".

When the search type is "touching paths" or "adding/removing string",
it's not very useful to highlight instances of the search string in
the commit message, headline or author name, so this disables the
highlighting in those cases.

This was suggested by Mark Burton <markb@ordern.com>, but the
implementation is different to his patch, which tested $gdttype at
each place where $markingmatches was tested.

Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agoGIT 1.6.1-rc1 v1.6.1-rc1
Junio C Hamano [Mon, 1 Dec 2008 07:01:53 +0000 (23:01 -0800)]
GIT 1.6.1-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoInclude git-gui--askpass in git-gui RPM package
Junio C Hamano [Mon, 1 Dec 2008 08:53:54 +0000 (00:53 -0800)]
Include git-gui--askpass in git-gui RPM package

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Mon, 1 Dec 2008 06:59:41 +0000 (22:59 -0800)]
Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
  gitk: Avoid handling the Return key twice in Add Branch
  gitk: Show local changes properly when we have a path limit
  gitk: Fix switch statement in parseviewargs
  gitk: Index line[hnd]tag arrays by id rather than row number

15 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Mon, 1 Dec 2008 06:54:39 +0000 (22:54 -0800)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: update Japanese translation
  git-gui: french translation update
  Updated Swedish translation (514t0f0u).
  git gui: update Italian translation
  Update Hungarian translation. 100% completed.

15 years agosend-email: do not reverse the command line arguments
Junio C Hamano [Mon, 1 Dec 2008 06:38:20 +0000 (22:38 -0800)]
send-email: do not reverse the command line arguments

The loop picks elements from @ARGV one by one, sifts them into arguments
meant for format-patch and the script itself, and pushes them to @files
and @rev_list_opts arrays.  Pick elements from @ARGV starting at the
beginning using shift, instead of at the end using pop, as push appends
them to the end of the array.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Mon, 1 Dec 2008 02:43:56 +0000 (18:43 -0800)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.6.0.5
  generate-cmdlist.sh: avoid selecting synopsis at wrong place

15 years agoUpdate draft release notes to 1.6.0.5
Junio C Hamano [Mon, 1 Dec 2008 02:33:20 +0000 (18:33 -0800)]
Update draft release notes to 1.6.0.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'st/maint-tag' into maint
Junio C Hamano [Mon, 1 Dec 2008 02:18:50 +0000 (18:18 -0800)]
Merge branch 'st/maint-tag' into maint

* st/maint-tag:
  tag: Add more tests about mixing incompatible modes and options
  tag: Check that options are only allowed in the appropriate mode

15 years agoMerge branch 'mk/maint-cg-push' into maint
Junio C Hamano [Mon, 1 Dec 2008 02:18:11 +0000 (18:18 -0800)]
Merge branch 'mk/maint-cg-push' into maint

* mk/maint-cg-push:
  git push: Interpret $GIT_DIR/branches in a Cogito compatible way

15 years agogenerate-cmdlist.sh: avoid selecting synopsis at wrong place
Nguyễn Thái Ngọc Duy [Sun, 30 Nov 2008 10:54:31 +0000 (17:54 +0700)]
generate-cmdlist.sh: avoid selecting synopsis at wrong place

In "common" man pages there is luckily no "NAME" anywhere except at
beginning of documents. If there is another "NAME", sed could
mis-select it and lead to common-cmds.h corruption. So better nail it
at beginning of line, which would reduce corruption chance.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: make gitweb_check_feature a boolean wrapper
Giuseppe Bilotta [Sat, 29 Nov 2008 21:07:29 +0000 (13:07 -0800)]
gitweb: make gitweb_check_feature a boolean wrapper

The gitweb_get_feature() function retrieves the configuration parameters
for the feature (such as the list of snapshot formats or the list of
additional actions), but it is very often used to see if feature is
enabled (which is returned as the first element in the list).

Because accepting the returned list in the scalar context by mistake
yields the number of elements in the array, which is non-zero in all
cases, such a mistake would result in a bug for the latter use, with
disabled features appearing enabled.  All existing callers that call the
function for this purpose assign the return value in the list context to
retrieve the first element, but that is only because we fixed careless
callers recently.

This adds gitweb_check_feature() as a wrapper to gitweb_get_feature() that
can be called safely in the scalar context to see if a feature is enabled
to reduce the risk of future bugs.  Callers of "get" that use the call
only to see if the feature is enabled are updated to call this wrapper.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: rename gitweb_check_feature to gitweb_get_feature
Junio C Hamano [Sat, 29 Nov 2008 21:02:08 +0000 (13:02 -0800)]
gitweb: rename gitweb_check_feature to gitweb_get_feature

The function is about retrieving the configuration parameter list for the
feature.  A more robust way to check if a feature is enabled will be
introduced in the next patch, and the function will be called
gitweb_check_feature.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: fix 'ctags' feature check and others
Junio C Hamano [Sat, 29 Nov 2008 20:53:41 +0000 (12:53 -0800)]
gitweb: fix 'ctags' feature check and others

gitweb_check_feature() function is to retrieve the configuration parameter
list and calling it in the scalar context does not give its first element
that tells if the feature is enabled.  This fixes all the existing callers
to call the function correctly in the list context.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit add --intent-to-add: do not let an empty blob be committed by accident
Junio C Hamano [Sat, 29 Nov 2008 03:56:34 +0000 (19:56 -0800)]
git add --intent-to-add: do not let an empty blob be committed by accident

Writing a tree out of an index with an "intent to add" entry is blocked.
This implies that you cannot "git commit" from such a state; however you
can still do "git commit -a" or "git commit $that_path".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit add --intent-to-add: fix removal of cached emptiness
Junio C Hamano [Sat, 29 Nov 2008 03:55:25 +0000 (19:55 -0800)]
git add --intent-to-add: fix removal of cached emptiness

This uses the extended index flag mechanism introduced earlier to mark
the entries added to the index via "git add -N" with CE_INTENT_TO_ADD.

The logic to detect an "intent to add" entry for the purpose of allowing
"git rm --cached $path" is tightened to check not just for a staged empty
blob, but with the CE_INTENT_TO_ADD bit.  This protects an empty blob that
was explicitly added and then modified in the work tree from being dropped
with this sequence:

$ >empty
$ git add empty
$ echo "non empty" >empty
$ git rm --cached empty

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobuiltin-rm.c: explain and clarify the "local change" logic
Junio C Hamano [Sat, 29 Nov 2008 02:41:21 +0000 (18:41 -0800)]
builtin-rm.c: explain and clarify the "local change" logic

Explain the logic to check local modification a bit more in the comment,
especially because the existing comment that talks about "git rm --cached"
was placed in a part that was not about "--cached" at all.

Also clarify "if .. else if .." structure.

Signed-off-by: Junio C Hamano <gitster@pobox.com>