Code

git.git
16 years agoGIT 1.5.3.8 v1.5.3.8
Junio C Hamano [Tue, 8 Jan 2008 06:41:43 +0000 (22:41 -0800)]
GIT 1.5.3.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: clarify the "Ignoring error from SVN" piece
Eric Wong [Mon, 7 Jan 2008 10:40:40 +0000 (02:40 -0800)]
git-svn: clarify the "Ignoring error from SVN" piece

I've heard of several users puzzled by this, and it sometimes it
appears as if git-svn is doing nothing on slower connections and
larger repositories.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: support for funky branch and project names over HTTP(S)
Eric Wong [Mon, 12 Nov 2007 07:37:42 +0000 (23:37 -0800)]
git-svn: support for funky branch and project names over HTTP(S)

SVN requires that paths be URI-escaped for HTTP(S) repositories.
file:// and svn:// repositories do not need these rules.

Additionally, accessing individual paths inside repositories
(check_path() and get_log() do NOT require escapes to function
and in fact it breaks things).

Noticed-by: Michael J. Cohen <mjc@cruiseplanners.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: avoid duplicate message-ids
Jeff King [Mon, 17 Dec 2007 20:51:34 +0000 (15:51 -0500)]
git-send-email: avoid duplicate message-ids

We used to unconditionally add a message-id to the outgoing
email without bothering to check if it already had one.
Instead, let's use the existing one.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoclone: correctly report http_fetch errors
Jeff King [Mon, 17 Dec 2007 12:43:59 +0000 (07:43 -0500)]
clone: correctly report http_fetch errors

The exit status from curl was accidentally lost by the
'case' statement. We need to explicitly save it so that $?
doesn't get overwritten.

This improves the error message when fetching from an http
repository which has never had update-server-info run.
Previously, it would fail to note the fetch error and
produce multiple errors about the lack of origin branches.
It now correctly suggests running git-update-server-info.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconfig.c:store_write_pair(): don't read the byte before a malloc'd buffer.
Jim Meyering [Sat, 8 Dec 2007 15:48:05 +0000 (16:48 +0100)]
config.c:store_write_pair(): don't read the byte before a malloc'd buffer.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoChange from using email.com to example.com as example domain, as per RFC 2606.
David Symonds [Thu, 6 Dec 2007 23:36:45 +0000 (10:36 +1100)]
Change from using email.com to example.com as example domain, as per RFC 2606.

Signed-off-by: David Symonds <dsymonds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-am -i: report rewritten title
Junio C Hamano [Wed, 5 Dec 2007 07:01:30 +0000 (23:01 -0800)]
git-am -i: report rewritten title

Jeff Garzik noticed that "git am -i" reports the applied patch with
the title before the user edited it.  This was confusing.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit grep shows the same hit repeatedly for unmerged paths
Junio C Hamano [Thu, 6 Dec 2007 00:13:08 +0000 (16:13 -0800)]
git grep shows the same hit repeatedly for unmerged paths

When the index is unmerged, e.g.

$ git ls-files -u
        100644 faf413748eb6ccb15161a212156c5e348302b1b6 1 setup.c
        100644 145eca50f41d811c4c8fcb21ed2604e6b2971aba 2 setup.c
        100644 cb9558c49b6027bf225ba2a6154c4d2a52bcdbe2 3 setup.c

running "git grep" for work tree files repeats hits for each unmerged
stage.

$ git grep -n -e setup_work_tree -- '*.[ch]'
        setup.c:209:void setup_work_tree(void)
        setup.c:209:void setup_work_tree(void)
        setup.c:209:void setup_work_tree(void)

This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'nd/maint-work-tree-fix' into maint
Junio C Hamano [Wed, 5 Dec 2007 23:07:23 +0000 (15:07 -0800)]
Merge branch 'nd/maint-work-tree-fix' into maint

* nd/maint-work-tree-fix:
  Do check_repository_format() early (re-fix)
  Do check_repository_format() early
  Add missing inside_work_tree setting in setup_git_directory_gently

16 years agoDo check_repository_format() early (re-fix)
Nguyễn Thái Ngọc Duy [Wed, 5 Dec 2007 13:33:32 +0000 (20:33 +0700)]
Do check_repository_format() early (re-fix)

This pushes check_repository_format() (actually _gently() version)
to setup_git_directory_gently() in order to prevent from
using unsupported repositories.

New setup_git_directory_gently()'s behaviour is stop searching
for a valid gitdir and return as if there is no gitdir if a
unsupported repository is found. Warning will be thrown in these
cases.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9600: test cvsimport from CVS working tree
Jeff King [Sun, 2 Dec 2007 17:22:19 +0000 (12:22 -0500)]
t9600: test cvsimport from CVS working tree

This test passes with v1.5.3.7, but not with v1.5.3.6.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoGIT 1.5.3.7 v1.5.3.7
Junio C Hamano [Sat, 1 Dec 2007 19:20:00 +0000 (11:20 -0800)]
GIT 1.5.3.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix typo in t4008 test title
Junio C Hamano [Sat, 1 Dec 2007 19:06:41 +0000 (11:06 -0800)]
Fix typo in t4008 test title

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoReplace the word 'update-cache' by 'update-index' everywhere
Johannes Schindelin [Fri, 30 Nov 2007 11:35:23 +0000 (11:35 +0000)]
Replace the word 'update-cache' by 'update-index' everywhere

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDo check_repository_format() early
Nguyễn Thái Ngọc Duy [Thu, 29 Nov 2007 12:21:39 +0000 (19:21 +0700)]
Do check_repository_format() early

Repository version check is only performed when
setup_git_directory() is called. This makes sure
setup_git_directory_gently() does the check too.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocvsimport: fix usage of cvsimport.module
Jeff King [Fri, 30 Nov 2007 22:22:12 +0000 (17:22 -0500)]
cvsimport: fix usage of cvsimport.module

There were two problems:

  1. We only look at the config variable if there is no module
     given on the command line. We checked this by comparing
     @ARGV == 0. However, at the time of the comparison, we
     have not yet parsed the dashed options, meaning that
     "git cvsimport" would read the variable but "git
     cvsimport -a" would not. This is fixed by simply moving
     the check after the call to getopt.

  2. If the config variable did not exist, we were adding an
     empty string to @ARGV. The rest of the script, rather
     than barfing for insufficient input, would then try to
     import the module '', leading to rather confusing error
     messages. Based on patch from Emanuele Giaquinta.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'jk/maint-cvsimport-fix' into maint
Junio C Hamano [Fri, 30 Nov 2007 22:22:54 +0000 (14:22 -0800)]
Merge branch 'jk/maint-cvsimport-fix' into maint

* jk/maint-cvsimport-fix:
  cvsimport: miscellaneous packed-ref fixes
  cvsimport: use rev-parse to support packed refs
  Add basic cvsimport tests

16 years agot7003-filter-branch: Fix test of a failing --msg-filter.
Johannes Sixt [Tue, 27 Nov 2007 12:10:19 +0000 (13:10 +0100)]
t7003-filter-branch: Fix test of a failing --msg-filter.

The test passed for the wrong reason: If the script given to --msg-filter
fails, it is expected that git-filter-branch aborts. But the test forgot
to tell the branch name to rewrite, and so git-filter-branch failed due to
incorrect usage.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoscripts: do not get confused with HEAD in work tree
Junio C Hamano [Thu, 29 Nov 2007 00:15:04 +0000 (16:15 -0800)]
scripts: do not get confused with HEAD in work tree

When you have a file called HEAD in your work tree, many commands that
our scripts feed "HEAD" to would complain about the rev vs path
ambiguity.  A solution is to form command line more carefully by
appending -- to them, which makes it clear that we mean HEAD rev not
HEAD file.

This patch would apply to maint.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoImprove description of git-branch -d and -D in man page.
Jan Hudec [Sat, 17 Nov 2007 19:51:44 +0000 (20:51 +0100)]
Improve description of git-branch -d and -D in man page.

Some users expect that deleting a remote-tracking branch would prevent
fetch from creating it again, so be explcit about that it's not the case.
Also be a little more explicit about what fully merged means.

Signed-off-by: Jan Hudec <bulb@ucw.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocvsimport: miscellaneous packed-ref fixes
Jeff King [Wed, 28 Nov 2007 18:56:28 +0000 (13:56 -0500)]
cvsimport: miscellaneous packed-ref fixes

These were found with a grep for '$git_dir'; they all
replace a direct access of "$git_dir/refs/..." with a call
to git-rev-parse or git-update-ref.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocvsimport: use rev-parse to support packed refs
Jeff King [Wed, 28 Nov 2007 18:56:11 +0000 (13:56 -0500)]
cvsimport: use rev-parse to support packed refs

Previously, if refs were packed, git-cvsimport would assume
that particular refs did not exist. This could lead to, for
example, overwriting previous 'origin' commits that were
packed.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd basic cvsimport tests
Jeff King [Wed, 28 Nov 2007 18:55:46 +0000 (13:55 -0500)]
Add basic cvsimport tests

We weren't even testing basic things before, so let's at
least try importing and updating a trivial repository, which
will catch total breakage.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint' of git://linux-nfs.org/~bfields/git into maint
Junio C Hamano [Mon, 26 Nov 2007 03:04:27 +0000 (19:04 -0800)]
Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
  user-manual: recovering from corruption
  user-manual: clarify language about "modifying" old commits
  user-manual: failed push to public repository
  user-manual: define "branch" and "working tree" at start

16 years agouser-manual: recovering from corruption
J. Bruce Fields [Sun, 4 Mar 2007 03:53:37 +0000 (22:53 -0500)]
user-manual: recovering from corruption

Some instructions on dealing with corruption of the object database.

Most of this text is from an example by Linus, identified by Nicolas
Pitre <nico@cam.org> with a little further editing by me.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
16 years agouser-manual: clarify language about "modifying" old commits
J. Bruce Fields [Mon, 26 Nov 2007 00:01:57 +0000 (19:01 -0500)]
user-manual: clarify language about "modifying" old commits

It's important to remember that git doesn't really allowing "editing" or
"modifying" commits, only replacing them by new commits.  Redo some of
the language to make this clearer.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
16 years agouser-manual: failed push to public repository
J. Bruce Fields [Sun, 25 Nov 2007 22:54:19 +0000 (17:54 -0500)]
user-manual: failed push to public repository

More details on the case of a failed push to a public (non-shared)
repository.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
16 years agouser-manual: define "branch" and "working tree" at start
J. Bruce Fields [Sun, 25 Nov 2007 18:53:37 +0000 (13:53 -0500)]
user-manual: define "branch" and "working tree" at start

Some explanation here might help.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
16 years agogit-checkout: describe detached head correctly
Junio C Hamano [Sun, 25 Nov 2007 18:34:27 +0000 (10:34 -0800)]
git-checkout: describe detached head correctly

When you have a file called HEAD in the work tree, the code to report
where the HEAD is at when "git checkout $commit^0" is done triggered
unnecessary ambiguity checking.

Explicitly mark the command line with "--" and make it clear that we are
talking about a revision.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'rv/maint-index-commit' into maint
Junio C Hamano [Sun, 25 Nov 2007 02:03:29 +0000 (18:03 -0800)]
Merge branch 'rv/maint-index-commit' into maint

* rv/maint-index-commit:
  Make GIT_INDEX_FILE apply to git-commit

16 years agoMerge branch 'lt/maint-rev-list-gitlink' into maint
Junio C Hamano [Sun, 25 Nov 2007 02:03:20 +0000 (18:03 -0800)]
Merge branch 'lt/maint-rev-list-gitlink' into maint

* lt/maint-rev-list-gitlink:
  Fix rev-list when showing objects involving submodules

16 years agoMerge branch 'jc/maint-add-sync-stat' into maint
Junio C Hamano [Sun, 25 Nov 2007 02:03:04 +0000 (18:03 -0800)]
Merge branch 'jc/maint-add-sync-stat' into maint

* jc/maint-add-sync-stat:
  t2200: test more cases of "add -u"
  git-add: make the entry stat-clean after re-adding the same contents
  ce_match_stat, run_diff_files: use symbolic constants for readability

16 years agoMerge branch 'jc/maint-format-patch-encoding' into maint
Junio C Hamano [Sun, 25 Nov 2007 02:02:30 +0000 (18:02 -0800)]
Merge branch 'jc/maint-format-patch-encoding' into maint

* jc/maint-format-patch-encoding:
  test format-patch -s: make sure MIME content type is shown as needed
  format-patch -s: add MIME encoding header if signer's name requires so

16 years agoMerge branch 'bs/maint-t7005' into maint
Junio C Hamano [Sun, 25 Nov 2007 02:01:46 +0000 (18:01 -0800)]
Merge branch 'bs/maint-t7005' into maint

* bs/maint-t7005:
  t7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH

16 years agoMerge branch 'bs/maint-commit-options' into maint
Junio C Hamano [Sun, 25 Nov 2007 01:54:08 +0000 (17:54 -0800)]
Merge branch 'bs/maint-commit-options' into maint

* bs/maint-commit-options:
  git-commit: Add tests for invalid usage of -a/--interactive with paths
  git-commit.sh: Fix usage checks regarding paths given when they do not make sense

16 years agoFix sample pre-commit hook
Junio C Hamano [Fri, 23 Nov 2007 07:25:19 +0000 (23:25 -0800)]
Fix sample pre-commit hook

If the worktree happened to have a file called HEAD, "diff-index --cached HEAD"
would complain about the ambiguity between revision and path.  Avoid it by
using an explicit "--" for disambiguation.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake test scripts executable.
Junio C Hamano [Fri, 23 Nov 2007 00:48:55 +0000 (16:48 -0800)]
Make test scripts executable.

16 years agobundle create: keep symbolic refs' names instead of resolving them
Johannes Schindelin [Thu, 22 Nov 2007 12:24:59 +0000 (12:24 +0000)]
bundle create: keep symbolic refs' names instead of resolving them

When creating a bundle, symbolic refs used to be resolved to the
non-symbolic refs they point to before being written to the list
of contained refs.  I.e. "git bundle create a1.bundle HEAD master"
would show something like

388afe7881b33102fada216dd07806728773c011        refs/heads/master
388afe7881b33102fada216dd07806728773c011        refs/heads/master

instead of

388afe7881b33102fada216dd07806728773c011        HEAD
388afe7881b33102fada216dd07806728773c011        refs/heads/master

Introduce a special handling so that the symbolic refs are listed
with the names passed on the command line.

Noticed by Santi Béjar.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agosend-email: add transfer encoding header with content-type
Jeff King [Tue, 20 Nov 2007 12:54:04 +0000 (07:54 -0500)]
send-email: add transfer encoding header with content-type

We add the content-type header only when we have non-7bit
characters from the 'From' header, so we really need to
specify the encoding (in other cases, where the commit text
needed a content-type, git-format-patch will already have
added the encoding header).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDoc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.
Matthieu Moy [Mon, 19 Nov 2007 18:25:11 +0000 (19:25 +0100)]
Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.

The HEAD@{...} syntax was documented in git-rev-parse manpage, which
is hard to find by someone looking for the documentation of porcelain.
git-reflog is probably the place where one expects to find this.

While I'm there, "git revlog show whatever" was also undocumented.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconfig: clarify compression defaults
Brian Downing [Mon, 19 Nov 2007 16:58:51 +0000 (10:58 -0600)]
config: clarify compression defaults

* Clarify that core.compression provides a system-wide default to
  other compression parameters.

* Explain that the default for pack.compression, -1, is "a default
  compromise between speed and compression (currently equivalent
  to level 6)" according to zlib.h.

Signed-off-by: Brian Downing <bdowning@lavos.net>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconfig: correct core.loosecompression documentation
Brian Downing [Mon, 19 Nov 2007 16:58:50 +0000 (10:58 -0600)]
config: correct core.loosecompression documentation

* core.loosecompression stated that the default was "0 (best speed)",
  when in fact 0 is "no compression", and the default is Z_BEST_SPEED,
  which is 1.

Signed-off-by: Brian Downing <bdowning@lavos.net>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint' of git://linux-nfs.org/~bfields/git into maint
Junio C Hamano [Mon, 19 Nov 2007 07:56:01 +0000 (23:56 -0800)]
Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
  Documentation: Fix references to deprecated commands
  user-manual: mention "..." in "Generating diffs", etc.
  user-manual: Add section "Why bisecting merge commits can be harder ..."
  git-remote.txt: fix example url

16 years agoDocumentation: Fix references to deprecated commands
J. Bruce Fields [Mon, 19 Nov 2007 01:50:57 +0000 (20:50 -0500)]
Documentation: Fix references to deprecated commands

... by changing git-tar-tree reference to git-archive and removing
seemingly unrelevant footnote about git-ssh-{fetch,upload}.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
16 years agouser-manual: mention "..." in "Generating diffs", etc.
J. Bruce Fields [Mon, 19 Nov 2007 00:18:27 +0000 (19:18 -0500)]
user-manual: mention "..." in "Generating diffs", etc.

We should mention the use of the "..." syntax for git-diff here.  The
note about the difference between diff and the combined output of
git-format-patch then no longer fits so well, so remove it.  Add a
reference to the git-format-patch[1] manpage.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
16 years agouser-manual: Add section "Why bisecting merge commits can be harder ..."
Steffen Prohaska [Sat, 10 Nov 2007 13:49:54 +0000 (14:49 +0100)]
user-manual: Add section "Why bisecting merge commits can be harder ..."

This commit adds a discussion of the challenge of bisecting
merge commits to the user manual.  The original author is
Junio C Hamano <gitster@pobox.com>, who posted the text to
the mailing list <http://marc.info/?l=git&m=119403257315527&w=2>.
His email was adapted for the manual.

The discussion is added to "Rewriting history and maintainig
patch series".  The text added requires good understanding of
merging and rebasing.  Therefore it should not be placed too
early in the manual.  Right after the section on "Problems with
rewriting history", the discussion of bisect gives another reason
for linearizing as much of the history as possible.

The text includes suggestions and fixes by
Ralf Wildenhues <Ralf.Wildenhues@gmx.de> and
Benoit Sigoure <tsuna@lrde.epita.fr>.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
16 years agoGIT 1.5.3.6 v1.5.3.6
Junio C Hamano [Sun, 18 Nov 2007 22:00:38 +0000 (14:00 -0800)]
GIT 1.5.3.6

16 years agogrep -An -Bm: fix invocation of external grep command
Junio C Hamano [Sun, 18 Nov 2007 05:18:14 +0000 (21:18 -0800)]
grep -An -Bm: fix invocation of external grep command

When building command line to invoke external grep, the
arguments to -A/-B/-C options were placd in randarg[] buffer,
but the code forgot that snprintf() does not count terminating
NUL in its return value.  This caused "git grep -A1 -B2" to
invoke external grep with "-B21 -A1".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-remote.txt: fix example url
J. Bruce Fields [Sat, 3 Nov 2007 02:54:31 +0000 (22:54 -0400)]
git-remote.txt: fix example url

If I'm going to use a real example as a URL, I suppose I should get it
right....

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
16 years agoFix rev-list when showing objects involving submodules
Linus Torvalds [Sun, 11 Nov 2007 23:35:23 +0000 (23:35 +0000)]
Fix rev-list when showing objects involving submodules

The function mark_tree_uninteresting() assumed that the tree entries
are blob when they are not trees.  This is not so.  Since we do
not traverse into submodules (yet), the gitlinks should be ignored.

In general, we should try to start moving away from using the
"S_ISLNK()" like things for internal git state. It was a mistake to
just assume the numbers all were same across all systems in the first
place.  This implementation converts to the "object_type", and then
uses a case statement.

Noticed by Ilari on IRC.
Test script taken from an earlier version by Dscho.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes for 1.5.3.6
Junio C Hamano [Sat, 17 Nov 2007 02:44:06 +0000 (18:44 -0800)]
Update draft release notes for 1.5.3.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'ds/maint-deflatebound' into maint
Junio C Hamano [Sat, 17 Nov 2007 05:14:17 +0000 (21:14 -0800)]
Merge branch 'ds/maint-deflatebound' into maint

* ds/maint-deflatebound:
  Improve accuracy of check for presence of deflateBound.

16 years agoFix per-directory exclude handing for "git add"
Junio C Hamano [Fri, 16 Nov 2007 09:15:41 +0000 (01:15 -0800)]
Fix per-directory exclude handing for "git add"

In "dir_struct", each exclusion element in the exclusion stack records a
base string (pointer to the beginning with length) so that we can tell
where it came from, but this pointer is just pointing at the parameter
that is given by the caller to the push_exclude_per_directory()
function.

While read_directory_recursive() runs, calls to excluded() makes use
the data in the exclusion elements, including this base string.  The
caller of read_directory_recursive() is not supposed to free the
buffer it gave to push_exclude_per_directory() earlier, until it
returns.

The test case Bruce Stephens gave in the mailing list discussion
was simplified and added to the t3700 test.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocore.excludesfile clean-up
Junio C Hamano [Sat, 17 Nov 2007 01:05:02 +0000 (17:05 -0800)]
core.excludesfile clean-up

There are inconsistencies in the way commands currently handle
the core.excludesfile configuration variable.  The problem is
the variable is too new to be noticed by anything other than
git-add and git-status.

 * git-ls-files does not notice any of the "ignore" files by
   default, as it predates the standardized set of ignore files.
   The calling scripts established the convention to use
   .git/info/exclude, .gitignore, and later core.excludesfile.

 * git-add and git-status know about it because they call
   add_excludes_from_file() directly with their own notion of
   which standard set of ignore files to use.  This is just a
   stupid duplication of code that need to be updated every time
   the definition of the standard set of ignore files is
   changed.

 * git-read-tree takes --exclude-per-directory=<gitignore>,
   not because the flexibility was needed.  Again, this was
   because the option predates the standardization of the ignore
   files.

 * git-merge-recursive uses hardcoded per-directory .gitignore
   and nothing else.  git-clean (scripted version) does not
   honor core.* because its call to underlying ls-files does not
   know about it.  git-clean in C (parked in 'pu') doesn't either.

We probably could change git-ls-files to use the standard set
when no excludes are specified on the command line and ignore
processing was asked, or something like that, but that will be a
change in semantics and might break people's scripts in a subtle
way.  I am somewhat reluctant to make such a change.

On the other hand, I think it makes perfect sense to fix
git-read-tree, git-merge-recursive and git-clean to follow the
same rule as other commands.  I do not think of a valid use case
to give an exclude-per-directory that is nonstandard to
read-tree command, outside a "negative" test in the t1004 test
script.

This patch is the first step to untangle this mess.

The next step would be to teach read-tree, merge-recursive and
clean (in C) to use setup_standard_excludes().

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix t9101 test failure caused by Subversion "auto-props"
Wincent Colaiuta [Fri, 16 Nov 2007 13:25:10 +0000 (14:25 +0100)]
Fix t9101 test failure caused by Subversion "auto-props"

If a user has an "auto-prop" in his/her ~/.subversion/config file for
automatically setting the svn:keyword Id property on all ".c" files
(a reasonably common configuration in the Subversion world) then one
of the "svn propset" operations in the very first test would become a
no-op, which in turn would make the next commit a no-op.

This then caused the 25th test ('test propget') to fail because it
expects a certain number of commits to have taken place but the actual
number of commits was off by one.

Björn Steinbrink identified the "auto-prop" feature as the cause
of the failure. This patch avoids it by passing the "--no-auto-prop"
flag to "svn import" when setting up the test repository, thus ensuring
that the "svn propset" operation is no longer a no-op, regardless of the
users' settings in their config.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: add charset header if we add encoded 'From'
Jeff King [Fri, 16 Nov 2007 10:49:09 +0000 (05:49 -0500)]
git-send-email: add charset header if we add encoded 'From'

We sometimes pick out the original rfc822 'From' header and
include it in the body of the message. If the original
author's name needs encoding, then we should specify that in
the content-type header.

If we already had a content-type header in the mail, then we
may need to re-encode. The logic is there to detect
this case, but it doesn't actually do the re-encoding.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-clean: honor core.excludesfile
Junio C Hamano [Wed, 14 Nov 2007 09:54:43 +0000 (01:54 -0800)]
git-clean: honor core.excludesfile

git-clean did not honor core.excludesfile configuration
variable, although some other commands such as git-add and
git-status did.  Fix this inconsistency.

Original report and patch from Shun'ichi Fuji.  Rewritten by me
and bugs and tests are mine.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: Fix man page breakage with DocBook XSL v1.72
Jonas Fonseca [Wed, 14 Nov 2007 09:38:46 +0000 (10:38 +0100)]
Documentation: Fix man page breakage with DocBook XSL v1.72

From version 1.72 it will replace all dots in roff requests with U+2302
("house" character), and add escaping in output for all instances of dot
that are not in roff requests. This caused the ".ft" hack forcing
monospace font in listingblocks to end up as "\&.ft" and being visible
in the resulting man page.

The fix adds a DOCBOOK_XSL_172 build variable that will disable the
hack. To allow this variable to be defined in config.mak it also moves
build variable handling below the inclusion of config.mak.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-remote.txt: fix typo
Sergei Organov [Tue, 13 Nov 2007 18:17:47 +0000 (21:17 +0300)]
git-remote.txt: fix typo

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocore-tutorial.txt: Fix argument mistake in an example.
Sergei Organov [Sat, 10 Nov 2007 13:17:33 +0000 (16:17 +0300)]
core-tutorial.txt: Fix argument mistake in an example.

One of examples has wrong output given the arguments provided.
Fix arguments to match the output.

Fix a minor syntax mistake in another place.

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoreplace reference to git-rm with git-reset in git-commit doc
Jing Xue [Mon, 12 Nov 2007 04:43:00 +0000 (23:43 -0500)]
replace reference to git-rm with git-reset in git-commit doc

The message in git-commit suggesting to use 'git rm --cached'
to unstage is just plain wrong. It really should mention 'git reset'.

Suggested by Jan Hudec.

Signed-off-by: Jing Xue <jingxue@digizenstudio.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoGrammar fixes for gitattributes documentation
Wincent Colaiuta [Wed, 14 Nov 2007 07:51:41 +0000 (08:51 +0100)]
Grammar fixes for gitattributes documentation

Tweak the "filter" section of the gitattributes documentation to add
some
missing articles and improve some word choices without changing the
semantics of the section.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDon't allow fast-import tree delta chains to exceed maximum depth
Shawn O. Pearce [Wed, 14 Nov 2007 04:48:42 +0000 (23:48 -0500)]
Don't allow fast-import tree delta chains to exceed maximum depth

Brian Downing noticed fast-import can produce tree depths of up
to 6,035 objects and even deeper.  Long delta chains can create
very small packfiles but cause problems during repacking as git
needs to unpack each tree to count the reachable blobs.

What's happening here is the active branch cache isn't big enough.
We're swapping out the branch and thus recycling the tree information
(struct tree_content) back into the free pool.  When we later reload
the tree we set the delta_depth to 0 but we kept the tree we just
reloaded as a delta base.

So if the tree we reloaded was already at the maximum depth we
wouldn't know it and make the new tree a delta.  Multiply the
number of times the branch cache has to swap out the tree times
max_depth (10) and you get the maximum delta depth of a tree created
by fast-import.  In Brian's case above the active branch cache had
to swap the branch out 603/604 times during this import to produce
a tree with a delta depth of 6035.

Acked-by: Brian Downing <bdowning@lavos.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorevert/cherry-pick: allow starting from dirty work tree.
Junio C Hamano [Tue, 13 Nov 2007 20:28:53 +0000 (12:28 -0800)]
revert/cherry-pick: allow starting from dirty work tree.

There is no reason to forbid a dirty work tree when reverting or
cherry-picking a change, as long as the index is clean.

The scripted version used to allow it:

    case "$no_commit" in
    t)
     # We do not intend to commit immediately.  We just want to
     # merge the differences in.
     head=$(git-write-tree) ||
     die "Your index file is unmerged."
     ;;
    *)
     head=$(git-rev-parse --verify HEAD) ||
     die "You do not have a valid HEAD"
     files=$(git-diff-index --cached --name-only $head) || exit
     if [ "$files" ]; then
     die "Dirty index: cannot $me (dirty: $files)"
     fi
     ;;
    esac

but C rewrite tightened the check, probably by mistake.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot/t3404: fix test for a bogus todo file.
Junio C Hamano [Tue, 13 Nov 2007 21:05:50 +0000 (13:05 -0800)]
t/t3404: fix test for a bogus todo file.

The test wants to see if there are still remaining tasks, but checked
a wrong file.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-commit: Add tests for invalid usage of -a/--interactive with paths
Björn Steinbrink [Mon, 12 Nov 2007 15:15:39 +0000 (16:15 +0100)]
git-commit: Add tests for invalid usage of -a/--interactive with paths

git-commit was/is broken in that it accepts paths together with -a or
--interactive, which it shouldn't. There tests check those usage errors.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'sp/maint-plug-traverse-commit-list-leak' into maint
Junio C Hamano [Mon, 12 Nov 2007 08:00:00 +0000 (00:00 -0800)]
Merge branch 'sp/maint-plug-traverse-commit-list-leak' into maint

* sp/maint-plug-traverse-commit-list-leak:
  Fix memory leak in traverse_commit_list

16 years agofor-each-ref: fix off by one read.
Christian Couder [Mon, 12 Nov 2007 04:37:25 +0000 (05:37 +0100)]
for-each-ref: fix off by one read.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-branch: remove mention of non-existent '-b' option
Jeff King [Mon, 12 Nov 2007 04:07:05 +0000 (23:07 -0500)]
git-branch: remove mention of non-existent '-b' option

This looks like a cut and paste error from the git-checkout
explanation of --no-track.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: prevent dcommitting if the index is dirty.
Benoit Sigoure [Sun, 11 Nov 2007 18:41:41 +0000 (19:41 +0100)]
git-svn: prevent dcommitting if the index is dirty.

dcommit uses rebase to sync the history with what has just been pushed to
SVN.  Trying to dcommit with a dirty index is troublesome for rebase, so now
the user will get an error message if he attempts to dcommit with a dirty
index.

Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot2200: test more cases of "add -u"
Junio C Hamano [Mon, 12 Nov 2007 02:44:16 +0000 (18:44 -0800)]
t2200: test more cases of "add -u"

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH
Björn Steinbrink [Sun, 11 Nov 2007 17:38:11 +0000 (18:38 +0100)]
t7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH

The git wrapper executable always prepends the GIT_EXEC_PATH build
variable to the current PATH, so prepending "." to the PATH is not
enough to give precedence to the fake vi executable.

The --exec-path option allows to prepend a directory to PATH even before
GIT_EXEC_PATH (which is added anyway), so we can use that instead.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake GIT_INDEX_FILE apply to git-commit
Rémi Vanicat [Sun, 11 Nov 2007 12:28:08 +0000 (13:28 +0100)]
Make GIT_INDEX_FILE apply to git-commit

Currently, when committing, git-commit ignore the value of
GIT_INDEX_FILE, and always use $GIT_DIR/index. This patch
fix it.

Signed-off-by: Rémi Vanicat <vanicat@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agofix index-pack with packs >4GB containing deltas on 32-bit machines
Nicolas Pitre [Sun, 11 Nov 2007 04:29:10 +0000 (23:29 -0500)]
fix index-pack with packs >4GB containing deltas on 32-bit machines

This probably hasn't been properly tested before.  Here's a script to
create a 8GB repo with the necessary characteristics (copy the
test-genrandom executable from the Git build tree to /tmp first):

-----
#!/bin/bash

git init
git config core.compression 0

# create big objects with no deltas
for i in $(seq -w 1 2 63)
do
echo $i
/tmp/test-genrandom $i 268435456 > file_$i
git add file_$i
rm file_$i
echo "file_$i -delta" >> .gitattributes
done

# create "deltifiable" objects in between big objects
for i in $(seq -w 2 2 64)
do
echo "$i $i $i" >> grow
cp grow file_$i
git add file_$i
rm file_$i
done
rm grow

# create a pack with them
git commit -q -m "commit of big objects interlaced with small deltas"
git repack -a -d
-----

Then clone this repo over the Git protocol.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-hash-object should honor config variables
Nicolas Pitre [Sat, 10 Nov 2007 20:00:33 +0000 (15:00 -0500)]
git-hash-object should honor config variables

... such as core.compression.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: correct month in date display for atom feeds
Vincent Zanotti [Sat, 10 Nov 2007 18:55:27 +0000 (19:55 +0100)]
gitweb: correct month in date display for atom feeds

Signed-off-by: Vincent Zanotti <vincent.zanotti@m4x.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix memory leak in traverse_commit_list
Shawn O. Pearce [Fri, 9 Nov 2007 11:06:10 +0000 (06:06 -0500)]
Fix memory leak in traverse_commit_list

If we were listing objects too then the objects were buffered in an
array only reachable from a stack allocated structure.  When this
function returns that array would be leaked as nobody would have
a reference to it anymore.

Historically this hasn't been a problem as the primary user of
traverse_commit_list() (the noble git-rev-list) would terminate
as soon as the function was finished, thus allowing the operating
system to cleanup memory.  However we have been leaking this data
in git-pack-objects ever since that program learned how to run the
revision listing internally, rather than relying on reading object
names from git-rev-list.

To better facilitate reuse of traverse_commit_list during other
builtin tools (such as git-fetch) we shouldn't leak temporary memory
like this and instead we need to clean up properly after ourselves.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-add: make the entry stat-clean after re-adding the same contents
Junio C Hamano [Sat, 10 Nov 2007 02:22:52 +0000 (18:22 -0800)]
git-add: make the entry stat-clean after re-adding the same contents

Earlier in commit 0781b8a9b2fe760fc4ed519a3a26e4b9bd6ccffe
(add_file_to_index: skip rehashing if the cached stat already
matches), add_file_to_index() were taught not to re-add the path
if it already matches the index.

The change meant well, but was not executed quite right.  It
used ie_modified() to see if the file on the work tree is really
different from the index, and skipped adding the contents if the
function says "not modified".

This was wrong.  There are three possible comparison results
between the index and the file in the work tree:

 - with lstat(2) we _know_ they are different.  E.g. if the
   length or the owner in the cached stat information is
   different from the length we just obtained from lstat(2), we
   can tell the file is modified without looking at the actual
   contents.

 - with lstat(2) we _know_ they are the same.  The same length,
   the same owner, the same everything (but this has a twist, as
   described below).

 - we cannot tell from lstat(2) information alone and need to go
   to the filesystem to actually compare.

The last case arises from what we call 'racy git' situation,
that can be caused with this sequence:

    $ echo hello >file
    $ git add file
    $ echo aeiou >file ;# the same length

If the second "echo" is done within the same filesystem
timestamp granularity as the first "echo", then the timestamp
recorded by "git add" and the timestamp we get from lstat(2)
will be the same, and we can mistakenly say the file is not
modified.  The path is called 'racily clean'.  We need to
reliably detect racily clean paths are in fact modified.

To solve this problem, when we write out the index, we mark the
index entry that has the same timestamp as the index file itself
(that is the time from the point of view of the filesystem) to
tell any later code that does the lstat(2) comparison not to
trust the cached stat info, and ie_modified() then actually goes
to the filesystem to compare the contents for such a path.

That's all good, but it should not be used for this "git add"
optimization, as the goal of "git add" is to actually update the
path in the index and make it stat-clean.  With the false
optimization, we did _not_ cause any data loss (after all, what
we failed to do was only to update the cached stat information),
but it made the following sequence leave the file stat dirty:

    $ echo hello >file
    $ git add file
    $ echo hello >file ;# the same contents
    $ git add file

The solution is not to use ie_modified() which goes to the
filesystem to see if it is really clean, but instead use
ie_match_stat() with "assume racily clean paths are dirty"
option, to force re-adding of such a path.

There was another problem with "git add -u".  The codepath
shares the same issue when adding the paths that are found to be
modified, but in addition, it asked "git diff-files" machinery
run_diff_files() function (which is "git diff-files") to list
the paths that are modified.  But "git diff-files" machinery
uses the same ie_modified() call so that it does not report
racily clean _and_ actually clean paths as modified, which is
not what we want.

The patch allows the callers of run_diff_files() to pass the
same "assume racily clean paths are dirty" option, and makes
"git-add -u" codepath to use that option, to discover and re-add
racily clean _and_ actually clean paths.

We could further optimize on top of this patch to differentiate
the case where the path really needs re-adding (i.e. the content
of the racily clean entry was indeed different) and the case
where only the cached stat information needs to be refreshed
(i.e. the racily clean entry was actually clean), but I do not
think it is worth it.

This patch applies to maint and all the way up.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoce_match_stat, run_diff_files: use symbolic constants for readability
Junio C Hamano [Sat, 10 Nov 2007 08:15:03 +0000 (00:15 -0800)]
ce_match_stat, run_diff_files: use symbolic constants for readability

ce_match_stat() can be told:

 (1) to ignore CE_VALID bit (used under "assume unchanged" mode)
     and perform the stat comparison anyway;

 (2) not to perform the contents comparison for racily clean
     entries and report mismatch of cached stat information;

using its "option" parameter.  Give them symbolic constants.

Similarly, run_diff_files() can be told not to report anything
on removed paths.  Also give it a symbolic constant for that.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoprint warning/error/fatal messages in one shot
Nicolas Pitre [Fri, 9 Nov 2007 19:33:54 +0000 (14:33 -0500)]
print warning/error/fatal messages in one shot

Not doing so is likely to create a messed up display when sent over the
sideband protocol.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoStart preparing for 1.5.3.6
Junio C Hamano [Fri, 9 Nov 2007 08:17:26 +0000 (00:17 -0800)]
Start preparing for 1.5.3.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: Change the prompt for the subject of the initial message.
Benoit Sigoure [Thu, 8 Nov 2007 18:56:28 +0000 (19:56 +0100)]
git-send-email: Change the prompt for the subject of the initial message.

I never understood what this prompt was asking for until I read the actual
source code.  I think this wording is much more understandable.

Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoSubmittingPatches: improve the 'Patch:' section of the checklist
Sergei Organov [Thu, 8 Nov 2007 16:40:25 +0000 (19:40 +0300)]
SubmittingPatches: improve the 'Patch:' section of the checklist

There were 2 items "send patch to..." but having different set of
addresses to send patch to. Merge them together and move the resulting
item to the end of checklist.

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoinstaweb: Minor cleanups and fixes for potential problems
Jonas Fonseca [Thu, 8 Nov 2007 23:21:42 +0000 (00:21 +0100)]
instaweb: Minor cleanups and fixes for potential problems

Fix path quoting and test of empty values that some shells do not like.
Remove duplicate check and setting of $browser.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agostop t1400 hiding errors in tests
Alex Riesen [Thu, 8 Nov 2007 23:41:39 +0000 (00:41 +0100)]
stop t1400 hiding errors in tests

The last rm in the test was lacking an "&&" before it,
which caused the errors in the commands be silently hidden.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMakefile: add missing dependency on wt-status.h
Junio C Hamano [Fri, 9 Nov 2007 00:41:56 +0000 (16:41 -0800)]
Makefile: add missing dependency on wt-status.h

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorefresh_index_quietly(): express "optional" nature of index writing better
Junio C Hamano [Fri, 9 Nov 2007 00:24:00 +0000 (16:24 -0800)]
refresh_index_quietly(): express "optional" nature of index writing better

The point of the part of the code this patch touches is that if
we modified the active_cache, we try to write it out and make it
the index file for later users to use by calling
"commit_locked_index", but we do not really care about the
failure from this sequence because it is done purely as an
optimization.

The original code called three functions primarily for their
side effects but as condition of an if statement, which is
admittedly a bad style.

Incidentally, it squelches an "empty if body" warning from gcc.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix sed string regex escaping in module_name.
Ralf Wildenhues [Thu, 8 Nov 2007 21:48:49 +0000 (22:48 +0100)]
Fix sed string regex escaping in module_name.

When escaping a string to be used as a sed regex, it is important
to only escape active characters.  Escaping other characters is
undefined according to POSIX, and in practice leads to issues with
extensions such as GNU sed's \+.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAvoid a few unportable, needlessly nested "...`...".
Ralf Wildenhues [Thu, 8 Nov 2007 21:47:36 +0000 (22:47 +0100)]
Avoid a few unportable, needlessly nested "...`...".

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-mailsplit: with maildirs not only process cur/, but also new/
Gerrit Pape [Tue, 6 Nov 2007 08:54:18 +0000 (08:54 +0000)]
git-mailsplit: with maildirs not only process cur/, but also new/

When saving patches to a maildir with e.g. mutt, the files are put into
the new/ subdirectory of the maildir, not cur/.  This makes git-am state
"Nothing to do.".  This patch lets git-mailsplit additional check new/
after reading cur/.

This was reported by Joey Hess through
 http://bugs.debian.org/447396

Signed-off-by: Gerrit Pape <pape@smarden.org>
Acked-by: Jeff King <peff@peff.net>
Acked-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Fernando J. Pereda <ferdy@gentoo.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotest format-patch -s: make sure MIME content type is shown as needed
Junio C Hamano [Sat, 3 Nov 2007 00:55:31 +0000 (17:55 -0700)]
test format-patch -s: make sure MIME content type is shown as needed

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoformat-patch -s: add MIME encoding header if signer's name requires so
Junio C Hamano [Wed, 31 Oct 2007 21:55:17 +0000 (14:55 -0700)]
format-patch -s: add MIME encoding header if signer's name requires so

When the body of the commit log message contains a non-ASCII character,
format-patch correctly emitted the encoding header to mark the resulting
message as such.  However, if the original message was fully ASCII, the
command line switch "-s" was given to add a new sign-off, and
the signer's name was not ASCII only, the resulting message would have
contained non-ASCII character but was not marked as such.

This was cherry-picked from the fix in 'master'

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoImprove accuracy of check for presence of deflateBound.
David Symonds [Wed, 7 Nov 2007 03:24:28 +0000 (14:24 +1100)]
Improve accuracy of check for presence of deflateBound.

ZLIB_VERNUM isn't defined in some zlib versions, so this patch does a proper
linking test in autoconf to see whether deflateBound exists in zlib. Also,
setting NO_DEFLATE_BOUND will also work for folk not using autoconf.

Signed-off-by: David Symonds <dsymonds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd Documentation/CodingGuidelines
Johannes Schindelin [Thu, 8 Nov 2007 00:33:19 +0000 (00:33 +0000)]
Add Documentation/CodingGuidelines

Even if our code is quite a good documentation for our coding style,
some people seem to prefer a document describing it.

The part about the shell scripts is clearly just copied from one of
Junio's helpful mails, and some parts were added from comments by
Junio, Andreas Ericsson and Robin Rosenberg.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoWhen exec() fails include the failing command in the error message
Ask Bjørn Hansen [Tue, 6 Nov 2007 10:54:01 +0000 (02:54 -0800)]
When exec() fails include the failing command in the error message

git-svn occasionally fails with no details as to what went wrong - this should help debug those situations.

Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoRelNotes-1.5.3.5: fix another typo
David D Kilzer [Sun, 4 Nov 2007 12:45:22 +0000 (04:45 -0800)]
RelNotes-1.5.3.5: fix another typo

Signed-off-by: David D Kilzer <ddkilzer@kilzer.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-commit.sh: Fix usage checks regarding paths given when they do not make sense
Björn Steinbrink [Mon, 5 Nov 2007 19:36:33 +0000 (20:36 +0100)]
git-commit.sh: Fix usage checks regarding paths given when they do not make sense

The checks that looked for paths given to git-commit in addition to
--all or --interactive expected only 3 values, while the case statement
actually provides 4, so the check was never triggered.

The bug was introduced in 6cbf07efc5702351897dee4742525c9b9f7828ac when
the case statement was extended to handle --interactive.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoRemove a couple of duplicated include
Marco Costalba [Sun, 4 Nov 2007 14:35:26 +0000 (15:35 +0100)]
Remove a couple of duplicated include

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogrep with unmerged index
Junio C Hamano [Tue, 6 Nov 2007 01:16:47 +0000 (17:16 -0800)]
grep with unmerged index

We called flush_grep() every time we saw an unmerged entry in
the index.  If we happen to find an unmerged entry before we saw
more than two paths, we incorrectly declared that the user had
too many non-paths options in front.

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