Code

git.git
16 years agorebase-i-p: minimum fix to obvious issues
Junio C Hamano [Mon, 20 Oct 2008 23:36:38 +0000 (16:36 -0700)]
rebase-i-p: minimum fix to obvious issues

Jeff King noticed that this series uses non-portable ${var:0:7} syntax
to splice a string, which is not even in POSIX, in the script.  A quick
look at around the offending part revealed a few issues, which this commit
fixes:

 * Why filter output from "rev-list --left-right A...B" and look for the
   ones that begin with ">"?  Wouldn't "rev-list A..B" give that?

 * The abbreviated SHA-1 are made with "rev-list --abbrev=7" into $TODO in
   an earlier invocation, and it can be more than 7 letters to avoid
   ambiguity.  Not just that "${r:0:7} is not even in POSIX", but use of
   it here is actively wrong.

 * There is no point in catting a single file and piping it into grep.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase-i-p: if todo was reordered use HEAD as the rewritten parent
Stephen Haberman [Wed, 15 Oct 2008 07:44:40 +0000 (02:44 -0500)]
rebase-i-p: if todo was reordered use HEAD as the rewritten parent

This seems like the best guess we can make until git sequencer marks are
available. That being said, within the context of re-ordering a commit before
its parent in todo, I think applying it on top of the current commit seems like
a reasonable assumption of what the user intended.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase-i-p: do not include non-first-parent commits touching UPSTREAM
Stephen Haberman [Wed, 15 Oct 2008 07:44:39 +0000 (02:44 -0500)]
rebase-i-p: do not include non-first-parent commits touching UPSTREAM

This covers an odd boundary case found by Avi Kivity's script where a branch
coming off of UPSTREAM is merged into HEAD. Initially it show up in
UPSTREAM..HEAD, but technically UPSTREAM is not moving, the rest of head is, so
we should not need to rewrite the merge.

This adds a check saying we can keep `preserve=t` if `p=UPSTREAM`...unless this
is the first first-parent commit in our UPSTREAM..HEAD rev-list, which could
very well point to UPSTREAM, but we still need to consider it as rewritten so we
start pulling in the rest of the UPSTREAM..HEAD commits that point to it.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase-i-p: only list commits that require rewriting in todo
Stephen Haberman [Wed, 15 Oct 2008 07:44:38 +0000 (02:44 -0500)]
rebase-i-p: only list commits that require rewriting in todo

This is heavily based on Stephan Beyer's git sequencer rewrite of rebase-i-p.

Each commit is still found by rev-list UPSTREAM..HEAD, but a commit is only
included in todo if at least one its parents has been marked for rewriting.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase-i-p: fix 'no squashing merges' tripping up non-merges
Stephen Haberman [Wed, 15 Oct 2008 07:44:37 +0000 (02:44 -0500)]
rebase-i-p: fix 'no squashing merges' tripping up non-merges

Also only check out the first parent if this commit if not a squash--if it is a
squash, we want to explicitly ignore the parent and leave the wc as is, as
cherry-pick will apply the squash on top of it.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase-i-p: delay saving current-commit to REWRITTEN if squashing
Stephen Haberman [Wed, 15 Oct 2008 07:44:36 +0000 (02:44 -0500)]
rebase-i-p: delay saving current-commit to REWRITTEN if squashing

If the current-commit was dumped to REWRITTEN, but then we squash the next
commit in to it, we have invalidated the HEAD was just written to REWRITTEN.
Instead, append the squash hash to current-commit and save both of them the next
time around.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase-i-p: use HEAD for updating the ref instead of mapping OLDHEAD
Stephen Haberman [Wed, 15 Oct 2008 07:44:35 +0000 (02:44 -0500)]
rebase-i-p: use HEAD for updating the ref instead of mapping OLDHEAD

If OLDHEAD was reordered in the todo, and its mapped NEWHEAD was used to set the
ref, commits reordered after OLDHEAD in the todo would should up as un-committed
changes.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase-i-p: test to exclude commits from todo based on its parents
Stephen Haberman [Wed, 15 Oct 2008 07:44:34 +0000 (02:44 -0500)]
rebase-i-p: test to exclude commits from todo based on its parents

The first case was based off a script from Avi Kivity <avi@redhat.com>.

The second case includes a merge-of-a-merge to ensure both are included in todo.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase--interactive: fix parent rewriting for dropped commits
Stephen Haberman [Mon, 6 Oct 2008 04:26:52 +0000 (23:26 -0500)]
rebase--interactive: fix parent rewriting for dropped commits

`rebase -i -p` got its rev-list of commits to keep by --left-right and
--cherry-pick. Adding --cherry-pick would drop commits that duplicated changes
already in the rebase target.

The dropped commits were then forgotten about when it came to rewriting the
parents of their descendents, so the descendents would get cherry-picked with
their old, unwritten parents and essentially make the rebase a no-op.

This commit adds a $DOTEST/dropped directory to remember dropped commits and
rewrite their children's parent as the dropped commit's possibly-rewritten
first-parent.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoremote.c: correct the check for a leading '/' in a remote name
Brandon Casey [Tue, 14 Oct 2008 20:30:21 +0000 (15:30 -0500)]
remote.c: correct the check for a leading '/' in a remote name

This test is supposed to disallow remote entries in the config file of the
form:

   [remote "/foobar"]
      ...

The leading slash in '/foobar' is not acceptable.

Instead it was incorrectly testing that the subkey had no leading '/', which
had no effect since the subkey pointer was made to point at a '.' in the
preceding lines.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd testcase to ensure merging an early part of a branch is done properly
Miklos Vajna [Mon, 13 Oct 2008 20:54:25 +0000 (22:54 +0200)]
Add testcase to ensure merging an early part of a branch is done properly

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes to 1.6.0.3
Junio C Hamano [Mon, 13 Oct 2008 22:41:36 +0000 (15:41 -0700)]
Update draft release notes to 1.6.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotest-lib: fix broken printf
Shawn O. Pearce [Sun, 12 Oct 2008 20:13:59 +0000 (13:13 -0700)]
test-lib: fix broken printf

b8eecafd888d219633f4c29e8b6a90fc21a46dfd introduced usage of
printf without a format string.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit apply --directory broken for new files
Jeff King [Sun, 12 Oct 2008 04:06:11 +0000 (00:06 -0400)]
git apply --directory broken for new files

We carefully verify that the input to git-apply is sane,
including cross-checking that the filenames we see in "+++"
headers match what was provided on the command line of "diff
--git". When --directory is used, however, we ended up
comparing the unadorned name to one with the prepended root,
causing us to complain about a mismatch.

We simply need to prepend the root directory, if any, when
pulling the name out of the git header.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agorebase -i: do not fail when there is no commit to cherry-pick
Johannes Schindelin [Fri, 10 Oct 2008 11:42:12 +0000 (13:42 +0200)]
rebase -i: do not fail when there is no commit to cherry-pick

In case there is no commit to apply (for example because you rebase to
upstream and all your local patches have been applied there), do not
fail.  The non-interactive rebase already behaves that way.

Do this by introducing a new command, "noop", which is substituted for
an empty commit list, so that deleting the commit list can still abort
as before.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agotest-lib: fix color reset in say_color()
Miklos Vajna [Thu, 9 Oct 2008 22:07:10 +0000 (00:07 +0200)]
test-lib: fix color reset in say_color()

When executing a single test with colors enabled, the cursor was not set
back to the previous one, and you had to hit an extra enter to get it
back.

Work around this problem by calling 'tput sgr0' before printing the
final newline.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agofix pread()'s short read in index-pack
Nicolas Pitre [Fri, 10 Oct 2008 02:08:51 +0000 (22:08 -0400)]
fix pread()'s short read in index-pack

Since v1.6.0.2~13^2~ the completion of a thin pack uses sha1write() for
its ability to compute a SHA1 on the written data.  This also provides
data buffering which, along with commit 92392b4a45, will confuse pread()
whenever an appended object is 1) freed due to memory pressure because
of the depth-first delta processing, and 2) needed again because it has
many delta children, and 3) its data is still buffered by sha1write().

Let's fix the issue by simply forcing cached data out when such an
object is written so it can be pread()'d at leisure.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'sg/maint-intrebase-msghook' into maint
Shawn O. Pearce [Thu, 9 Oct 2008 16:33:23 +0000 (09:33 -0700)]
Merge branch 'sg/maint-intrebase-msghook' into maint

* sg/maint-intrebase-msghook:
  rebase -i: remove leftover debugging
  rebase -i: proper prepare-commit-msg hook argument when squashing

16 years agobuiltin-apply: fix typo leading to stack corruption
Imre Deak [Wed, 8 Oct 2008 21:24:16 +0000 (00:24 +0300)]
builtin-apply: fix typo leading to stack corruption

This typo led to stack corruption for lines with whitespace fixes
and length > 1024.

Signed-off-by: Imre Deak <imre.deak@gmail.com>
Looks-good-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)
Brandon Casey [Thu, 2 Oct 2008 23:52:11 +0000 (18:52 -0500)]
git-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)

The referenced commit tried to fix a flaw in stash's handling of a user
supplied invalid ref. i.e. 'git stash apply fake_ref@{0}' should fail
instead of applying stash@{0}. But, it did so in a naive way by avoiding the
use of the --default option of rev-parse, and instead manually supplied the
default revision if the user supplied an empty command line. This prevented
a common usage scenario of supplying flags on the stash command line (i.e.
non-empty command line) which would be parsed by lower level git commands,
without supplying a specific revision. This should fall back to the default
revision, but now it causes an error. e.g. 'git stash show -p'

The correct fix is to use the --verify option of rev-parse, which fails
properly if an invalid ref is supplied, and still allows falling back to a
default ref when one is not supplied.

Convert stash-drop to use --verify while we're at it, since specifying
multiple revisions for any of these commands is also an error and --verify
makes it so.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'jk/maint-soliconv' into maint
Shawn O. Pearce [Thu, 9 Oct 2008 16:08:43 +0000 (09:08 -0700)]
Merge branch 'jk/maint-soliconv' into maint

* jk/maint-soliconv:
  Makefile: do not set NEEDS_LIBICONV for Solaris 8

16 years agobuiltin-merge.c: allocate correct amount of memory
Brandon Casey [Thu, 9 Oct 2008 00:07:54 +0000 (19:07 -0500)]
builtin-merge.c: allocate correct amount of memory

Fix two memory allocation errors which allocate space for a pointer
rather than enough space for the structure itself.

This:

    struct commit_list *parent = xmalloc(sizeof(struct commit_list *));

should have been this:

    struct commit_list *parent = xmalloc(sizeof(struct commit_list));

But while we're at it, change the allocation to reference the
variable it is allocating memory for to try to prevent a similar
mistake, for example if the type is changed, in the future.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoDo not use errno when pread() returns 0
Samuel Tardieu [Mon, 6 Oct 2008 17:28:41 +0000 (19:28 +0200)]
Do not use errno when pread() returns 0

If we use pread() while at the end of the file, it will return 0, which is
not an error from the operating system point of view. In this case, errno
has not been set and must not be used.

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit init: --bare/--shared overrides system/global config
Deskin Miller [Tue, 7 Oct 2008 05:37:48 +0000 (01:37 -0400)]
git init: --bare/--shared overrides system/global config

If core.bare or core.sharedRepository are set in /etc/gitconfig or
~/.gitconfig, then 'git init' will read the values when constructing a
new config file; reading them, however, will override the values
specified on the command line.  In the case of --bare, this ends up
causing a segfault, without the repository being properly initialised;
in the case of --shared, the permissions are set according to the
existing config settings, not what was specified on the command line.

This fix saves any specified values for --bare and --shared prior to
reading existing config settings, and restores them after reading but
before writing the new config file.  core.bare is ignored in all
situations, while core.sharedRepository will only be used if --shared
is not specified to git init.

Also includes testcases which use a specified global config file
override, demonstrating the former failure scenario.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-push.txt: Describe --repo option in more detail
Johannes Sixt [Tue, 7 Oct 2008 14:26:20 +0000 (16:26 +0200)]
git-push.txt: Describe --repo option in more detail

The --repo option was described in a way that the reader would have to
assume that it is the same as the <repository> parameter. But it actually
servers a purpose, which is now written down.

Furthermore, the --mirror option was missing from the synopsis.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit rm: refresh index before up-to-date check
Johannes Schindelin [Tue, 7 Oct 2008 16:08:21 +0000 (18:08 +0200)]
git rm: refresh index before up-to-date check

Since "git rm" is supposed to be porcelain, we should convince it to
be user friendly by refreshing the index itself.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoFix a few typos in relnotes
Mikael Magnusson [Tue, 7 Oct 2008 18:15:25 +0000 (20:15 +0200)]
Fix a few typos in relnotes

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoUpdate release notes for 1.6.0.3
Shawn O. Pearce [Mon, 6 Oct 2008 15:22:19 +0000 (08:22 -0700)]
Update release notes for 1.6.0.3

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoTeach rebase -i to honor pre-rebase hook
Nanako Shiraishi [Mon, 6 Oct 2008 05:14:24 +0000 (14:14 +0900)]
Teach rebase -i to honor pre-rebase hook

The original git-rebase honored pre-rebase hook so that public branches
can be protected from getting rebased, but rebase --interactive ignored
the hook entirely.  This fixes it.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agodocs: describe pre-rebase hook
Nanako Shiraishi [Sun, 5 Oct 2008 13:26:54 +0000 (22:26 +0900)]
docs: describe pre-rebase hook

Documentation/git-rebase.txt talks about pre-rebase hook, but it
appears that Documentation/git-hooks.txt does not have corresponding
entry for it.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agodo not segfault if make_cache_entry failed
Dmitry Potapov [Sun, 5 Oct 2008 02:14:40 +0000 (06:14 +0400)]
do not segfault if make_cache_entry failed

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agomake prefix_path() never return NULL
Dmitry Potapov [Sun, 5 Oct 2008 00:40:36 +0000 (04:40 +0400)]
make prefix_path() never return NULL

There are 9 places where prefix_path is called, and only in one of
them the returned pointer was checked to be non-zero and only to
call exit(128) as it is usually done by die(). In other 8 places,
the returned value was not checked and it caused SIGSEGV when a
path outside of the working tree was used. For instance, running
  git update-index --add /some/path/outside
caused SIGSEGV.

This patch changes prefix_path() to die if the path is outside of
the repository, so it never returns NULL.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agofix bogus "diff --git" header from "diff --no-index"
Linus Torvalds [Sun, 5 Oct 2008 19:35:15 +0000 (15:35 -0400)]
fix bogus "diff --git" header from "diff --no-index"

When "git diff --no-index" is given an absolute pathname, it
would generate a diff header with the absolute path
prepended by the prefix, like:

  diff --git a/dev/null b/foo

Not only is this nonsensical, and not only does it violate
the description of diffs given in git-diff(1), but it would
produce broken binary diffs. Unlike text diffs, the binary
diffs don't contain the filenames anywhere else, and so "git
apply" relies on this header to figure out the filename.

This patch just refuses to use an invalid name for anything
visible in the diff.

Now, this fixes the "git diff --no-index --binary a
/dev/null" kind of case (and we'll end up using "a" as the
basename), but some other insane cases are impossible to
handle. If you do

git diff --no-index --binary a /bin/echo

you'll still get a patch like

diff --git a/a b/bin/echo
old mode 100644
new mode 100755
index ...

and "git apply" will refuse to apply it for a couple of
reasons, and the diff is simply bogus.

And that, btw, is no longer a bug, I think. It's impossible
to know whethe the user meant for the patch to be a rename
or not. And as such, refusing to apply it because you don't
know what name you should use is probably _exactly_ the
right thing to do!

Original problem reported by Imre Deak. Test script and problem
description by Jeff King.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoFix fetch/clone --quiet when stdout is connected
Tuncer Ayaz [Sun, 5 Oct 2008 13:53:00 +0000 (15:53 +0200)]
Fix fetch/clone --quiet when stdout is connected

Fixes the `git clone --quiet` issue raised by Dave Jones in
http://marc.info/?l=git&m=121529226023180&w=2

With this simple patch applied we no longer see the following remote
messages as no-progress is correctly sent to the remote site:

  remote: Counting objects: 84102, done.
  remote: Compressing objects: 100% (24720/24720), done.
  remote: Total 84102 (delta 60949), reused 80810 (delta 57900)

Signed-off-by: Tuncer Ayaz <tuncer.ayaz@gmail.com>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agobuiltin-blame: Fix blame -C -C with submodules.
Alexander Gavrilov [Fri, 3 Oct 2008 16:23:50 +0000 (20:23 +0400)]
builtin-blame: Fix blame -C -C with submodules.

When performing copy detection, git-blame tries to
read gitlinks as blobs, which causes it to die.

This patch adds a check to skip them.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agobash: remove fetch, push, pull dashed form leftovers
SZEDER GĂ¡bor [Fri, 3 Oct 2008 19:34:49 +0000 (21:34 +0200)]
bash: remove fetch, push, pull dashed form leftovers

We don't provide complation for git-commands in dashed form anymore,
so there is no need to keep those cases.

Signed-off-by: SZEDER GĂ¡bor <szeder@ira.uka.de>
Tested-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMakefile: do not set NEEDS_LIBICONV for Solaris 8
Jeff King [Fri, 3 Oct 2008 06:39:36 +0000 (02:39 -0400)]
Makefile: do not set NEEDS_LIBICONV for Solaris 8

This breaks my build on Solaris 8, as there is no separate
libiconv.

The history of this line is somewhat convoluted. In 2fd955c
(in November 2005), NEEDS_LIBICONV was turned on for all
Solaris builds, claiming to "fix an error in Solaris 10 by
setting NEEDS_LIBICONV".

Later, e15f545 (in February of 2006) claimed that "Solaris
9+ don't need iconv", and moved NEEDS_LIBICONV into a
section for Solaris 8.

Furthermore, Brandon Casey claims in

<5A1KxlhmUIHe8iXPxnXYuNXsq0Yjlbwkz2eBin3z7ELuL9nK-4tSpw@cipher.nrlssc.navy.mil>

that he does not set NEEDS_LIBICONV for Solaris 7.

So either one of those commits is totally wrong, or there is
some other magic going on where some Solaris installs need
it and others don't.

Given Brandon's statement and my problems on Solaris 8 with
NEEDS_LIBICONV, I am inclined to think the first commit was
bogus, and that NEEDS_LIBICONV shouldn't be set for Solaris
at all by default. If somebody wants to use iconv and has
installed it manually, they can set it in their config.mak.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agorebase -i: remove leftover debugging
SZEDER GĂ¡bor [Fri, 3 Oct 2008 09:33:20 +0000 (11:33 +0200)]
rebase -i: remove leftover debugging

Signed-off-by: SZEDER GĂ¡bor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agorebase -i: proper prepare-commit-msg hook argument when squashing
SZEDER GĂ¡bor [Fri, 3 Oct 2008 00:08:21 +0000 (02:08 +0200)]
rebase -i: proper prepare-commit-msg hook argument when squashing

One would expect that the prepare-commit-msg hook gets 'squash' as the
second argument when squashing commits with 'rebase -i'.  However,
that was not the case, as it got 'merge' instead.  This patch fixes
the problem.

Signed-off-by: SZEDER GĂ¡bor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogitweb: Add path_info tests to t/t9500-gitweb-standalone-no-errors.sh
Jakub Narebski [Thu, 2 Oct 2008 14:52:20 +0000 (16:52 +0200)]
gitweb: Add path_info tests to t/t9500-gitweb-standalone-no-errors.sh

Note that those tests only check that there are no errors nor
warnings from Perl; they do not check for example if gitweb doesn't
use ARRAY(0x8e3cc20) instead of correct value in links, etc.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogitweb: Fix two 'uninitialized value' warnings in git_tree()
Jakub Narebski [Thu, 2 Oct 2008 14:50:04 +0000 (16:50 +0200)]
gitweb: Fix two 'uninitialized value' warnings in git_tree()

If we did try to access nonexistent directory or file, which means
that git_get_hash_by_path() returns `undef`, uninitialized $hash
variable was passed to 'open' call.  Now we fail early with "404 Not
Found - No such tree" error.  (If we try to access something which
does not resolve to tree-ish, for example a file / 'blob' object, the
error will be caught later, as "404 Not Found - Reading tree failed"
error).

If we tried to use 'tree' action without $file_name ('f' parameter)
set, which means either tree given by hash or a top tree (and we
currently cannot distinguish between those two cases), we cannot print
path breadcrumbs with git_print_page_path().  Fix this by moving call
to git_print_page_path() inside conditional.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoSolaris: Use OLD_ICONV to avoid compile warnings
David Soria Parra [Thu, 2 Oct 2008 00:08:47 +0000 (02:08 +0200)]
Solaris: Use OLD_ICONV to avoid compile warnings

Solaris systems use the old styled iconv(3) call and therefore
the OLD_ICONV variable should be set. Otherwise we get annoying compile
warnings.

Signed-off-by: David Soria Parra <dsp@php.net>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogitweb: remove PATH_INFO from $my_url and $my_uri
Giuseppe Bilotta [Mon, 29 Sep 2008 13:07:42 +0000 (15:07 +0200)]
gitweb: remove PATH_INFO from $my_url and $my_uri

This patch fixes PATH_INFO handling by removing the relevant part from
$my_url and $my_uri, thus making it unnecessary to specify them by hand
in the gitweb configuration.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoImprove git-log documentation wrt file filters
martin f. krafft [Tue, 30 Sep 2008 19:57:50 +0000 (21:57 +0200)]
Improve git-log documentation wrt file filters

The need for "--" in the git-log synopsis was previously unclear and
confusing. This patch makes it a little clearer.

Thanks to hyy <yiyihu@gmail.com> for his help.

[sp: Changed -- to \-- per prior commit e1ccf53.]

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoDocumentation: remove '\' in front of short options
SZEDER GĂ¡bor [Tue, 30 Sep 2008 17:27:10 +0000 (19:27 +0200)]
Documentation: remove '\' in front of short options

... because they show up in the man and html outputs.

This escaping is only needed for double dashes to be compatible with
older asciidoc versions;  see commit e1ccf53 ([PATCH] Escape asciidoc's
built-in em-dash replacement, 2005-09-12).

Signed-off-by: SZEDER GĂ¡bor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-svn: call 'fatal' correctly in set-tree
Luc Heinrich [Mon, 29 Sep 2008 13:58:18 +0000 (15:58 +0200)]
git-svn: call 'fatal' correctly in set-tree

When doing a set-tree and there is no revision to commit to, the following unrelated error message is displayed: "Undefined subroutine &Git::SVN::fatal called at /opt/local/libexec/git-core/git-svn line 2575." The following patch fixes the problem and allows the real error message to be shown.

Signed-off-by: Luc Heinrich <luc@honk-honk.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoReplace svn.foo.org with svn.example.com in git-svn docs (RFC 2606)
Michael Prokop [Mon, 29 Sep 2008 23:01:34 +0000 (01:01 +0200)]
Replace svn.foo.org with svn.example.com in git-svn docs (RFC 2606)

foo.org is an existing domain, use RFC 2606 complying example.com instead
as used in other docs as well.

Signed-off-by: Michael Prokop <mika@grml.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agot0024: add executable permission
SZEDER GĂ¡bor [Tue, 30 Sep 2008 13:32:47 +0000 (15:32 +0200)]
t0024: add executable permission

Signed-off-by: SZEDER GĂ¡bor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'bc/maint-diff-hunk-header-fix' into maint
Shawn O. Pearce [Mon, 29 Sep 2008 17:23:19 +0000 (10:23 -0700)]
Merge branch 'bc/maint-diff-hunk-header-fix' into maint

* bc/maint-diff-hunk-header-fix:
  t4018-diff-funcname: test syntax of builtin xfuncname patterns
  diff hunk pattern: fix misconverted "\{" tex macro introducers
  diff: use extended regexp to find hunk headers
  diff.*.xfuncname which uses "extended" regex's for hunk header selection
  diff.c: associate a flag with each pattern and use it for compiling regex
  diff.c: return pattern entry pointer rather than just the hunk header pattern

Conflicts:
Documentation/gitattributes.txt

16 years agoMerge branch 'mg/maint-remote-fix' into maint
Shawn O. Pearce [Mon, 29 Sep 2008 16:39:53 +0000 (09:39 -0700)]
Merge branch 'mg/maint-remote-fix' into maint

* mg/maint-remote-fix:
  make "git remote" report multiple URLs

16 years agoClarify commit error message for unmerged files
Rafael Garcia-Suarez [Mon, 29 Sep 2008 16:04:41 +0000 (18:04 +0200)]
Clarify commit error message for unmerged files

Currently, trying to use git-commit with unmerged files in the index
will show the message "Error building trees", which can be a bit
obscure to the end user. This patch makes the error message clearer, and
consistent with what git-write-tree reports in a similar situation.

Signed-off-by: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoUse strchrnul() instead of strchr() plus manual workaround
Johan Herland [Sat, 27 Sep 2008 22:24:36 +0000 (00:24 +0200)]
Use strchrnul() instead of strchr() plus manual workaround

Also gets rid of a C++ comment.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoUse remove_path from dir.c instead of own implementation
Alex Riesen [Fri, 26 Sep 2008 22:59:14 +0000 (00:59 +0200)]
Use remove_path from dir.c instead of own implementation

Besides, it fixes a memleak (builtin-rm.c) and accidental change of
the input const argument (builtin-merge-recursive.c).

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoAdd remove_path: a function to remove as much as possible of a path
Alex Riesen [Fri, 26 Sep 2008 22:56:46 +0000 (00:56 +0200)]
Add remove_path: a function to remove as much as possible of a path

The function has two potential users which both managed to get wrong
their implementations (the one in builtin-rm.c one has a memleak, and
builtin-merge-recursive.c scribles over its const argument).

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-submodule: Fix "Unable to checkout" for the initial 'update'
Ping Yin [Fri, 26 Sep 2008 15:33:23 +0000 (23:33 +0800)]
git-submodule: Fix "Unable to checkout" for the initial 'update'

Since commit 55218("checkout: do not lose staged removal"), in
cmd_add/cmd_update, "git checkout <commit>" following
"git clone -n" may fail if <commit> is different from HEAD.

So Use "git checkout -f <commit>" to fix this.

Signed-off-by: Ping Yin <pkufranky@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoClarify how the user can satisfy stash's 'dirty state' check.
Stephen Haberman [Mon, 29 Sep 2008 09:12:04 +0000 (04:12 -0500)]
Clarify how the user can satisfy stash's 'dirty state' check.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoRemove empty directories in recursive merge
Alex Riesen [Thu, 25 Sep 2008 20:12:45 +0000 (22:12 +0200)]
Remove empty directories in recursive merge

The code was actually supposed to do that, but was accidentally broken.
Noticed by Anders Melchiorsen.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoDocumentation: clarify the details of overriding LESS via core.pager
Chris Frey [Wed, 24 Sep 2008 23:21:28 +0000 (19:21 -0400)]
Documentation: clarify the details of overriding LESS via core.pager

The process of overriding the default LESS options using only
git-specific methods is rather obscure.  Show the end user how
to do it in a step-by-step manner.

Signed-off-by: Chris Frey <cdfrey@foursquare.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoUpdate release notes for 1.6.0.3
Shawn O. Pearce [Thu, 25 Sep 2008 15:27:41 +0000 (08:27 -0700)]
Update release notes for 1.6.0.3

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agocheckout: Do not show local changes when in quiet mode
Jonas Fonseca [Thu, 25 Sep 2008 08:35:38 +0000 (10:35 +0200)]
checkout: Do not show local changes when in quiet mode

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agofor-each-ref: Fix --format=%(subject) for log message without newlines
Johan Herland [Wed, 24 Sep 2008 23:10:54 +0000 (01:10 +0200)]
for-each-ref: Fix --format=%(subject) for log message without newlines

'git for-each-ref --format=%(subject)' currently returns an empty string
if the log message does not contain a newline.

This patch teaches 'git for-each-ref' to return the entire log message
(instead of an empty string) if there is no newline in the log message.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-stash.sh: don't default to refs/stash if invalid ref supplied
Brandon Casey [Tue, 23 Sep 2008 23:57:09 +0000 (18:57 -0500)]
git-stash.sh: don't default to refs/stash if invalid ref supplied

apply_stash() and show_stash() each call rev-parse with
'--default refs/stash' as an argument. This option causes rev-parse to
operate on refs/stash if it is not able to successfully operate on any
element of the command line. This includes failure to supply a "valid"
revision. This has the effect of causing 'stash apply' and 'stash show'
to operate as if stash@{0} had been supplied when an invalid revision is
supplied.

e.g. 'git stash apply stash@{1}' would fall back to
     'git stash apply stash@{0}'

This patch modifies these two functions so that they avoid using the
--default option of rev-parse.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agomaint: check return of split_cmdline to avoid bad config strings
Deskin Miller [Mon, 22 Sep 2008 15:06:41 +0000 (11:06 -0400)]
maint: check return of split_cmdline to avoid bad config strings

As the testcase demonstrates, it's possible for split_cmdline to return -1 and
deallocate any memory it's allocated, if the config string is missing an end
quote.  In both the cases below, which are the only calling sites, the return
isn't checked, and using the pointer causes a pretty immediate segfault.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agobuiltin-prune.c: prune temporary packs in <object_dir>/pack directory
Brandon Casey [Mon, 22 Sep 2008 23:34:26 +0000 (18:34 -0500)]
builtin-prune.c: prune temporary packs in <object_dir>/pack directory

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot4018-diff-funcname: test syntax of builtin xfuncname patterns
Brandon Casey [Mon, 22 Sep 2008 23:19:05 +0000 (18:19 -0500)]
t4018-diff-funcname: test syntax of builtin xfuncname patterns

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDo not perform cross-directory renames when creating packs
Petr Baudis [Mon, 22 Sep 2008 17:20:21 +0000 (19:20 +0200)]
Do not perform cross-directory renames when creating packs

A comment on top of create_tmpfile() describes caveats ('can have
problems on various systems (FAT, NFS, Coda)') that should apply
in this situation as well.  This in the end did not end up solving
any of my personal problems, but it might be a useful cleanup patch
nevertheless.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUse dashless git commands in setgitperms.perl
Todd Zullinger [Mon, 22 Sep 2008 11:30:08 +0000 (07:30 -0400)]
Use dashless git commands in setgitperms.perl

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-remote: do not use user input in a printf format string
Johannes Sixt [Mon, 22 Sep 2008 11:03:25 +0000 (13:03 +0200)]
git-remote: do not use user input in a printf format string

'git remote show' substituted the remote name into a string that was later
used as a printf format string. If a remote name contains a printf format
specifier like this:

   $ git remote add foo%sbar .

then the command

   $ git remote show foo%sbar

would print garbage (if you are lucky) or crash. This fixes it.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomake "git remote" report multiple URLs
Michael J Gruber [Mon, 22 Sep 2008 08:57:51 +0000 (10:57 +0200)]
make "git remote" report multiple URLs

This patch makes "git remote -v" and "git remote show" report multiple URLs
rather than warn about them. Multiple URLs are OK for pushing into
multiple repos simultaneously. Without "-v" each repo is shown once only.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff hunk pattern: fix misconverted "\{" tex macro introducers
Junio C Hamano [Sat, 20 Sep 2008 22:30:12 +0000 (15:30 -0700)]
diff hunk pattern: fix misconverted "\{" tex macro introducers

Pointed out by Brandon Casey.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff: use extended regexp to find hunk headers
Junio C Hamano [Sat, 20 Sep 2008 06:45:04 +0000 (23:45 -0700)]
diff: use extended regexp to find hunk headers

Using ERE elements such as "|" (alternation) by backquoting in BRE
is a GNU extension and should not be done in portable programs.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoStart draft release notes for 1.6.0.3
Junio C Hamano [Sat, 20 Sep 2008 06:15:13 +0000 (23:15 -0700)]
Start draft release notes for 1.6.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-repack uses --no-repack-object, not --no-repack-delta.
Mikael Magnusson [Fri, 19 Sep 2008 13:43:48 +0000 (15:43 +0200)]
git-repack uses --no-repack-object, not --no-repack-delta.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTypo "bogos" in format-patch error message.
Mikael Magnusson [Fri, 19 Sep 2008 13:42:30 +0000 (15:42 +0200)]
Typo "bogos" in format-patch error message.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-clone: fix typo
Fabrizio Chiarello [Fri, 19 Sep 2008 12:07:26 +0000 (14:07 +0200)]
builtin-clone: fix typo

Signed-off-by: Fabrizio Chiarello <ponch@autistici.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoBust the ghost of long-defunct diffcore-pathspec.
Yann Dirson [Fri, 19 Sep 2008 20:12:53 +0000 (22:12 +0200)]
Bust the ghost of long-defunct diffcore-pathspec.

This concept was retired by 77882f6 (Retire diffcore-pathspec.,
2006-04-10), more than 2 years ago.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocompletion: git commit should list --interactive
Eric Raible [Thu, 11 Sep 2008 00:40:20 +0000 (17:40 -0700)]
completion: git commit should list --interactive

Signed-off-by: Eric Raible <raible@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff.*.xfuncname which uses "extended" regex's for hunk header selection
Brandon Casey [Thu, 18 Sep 2008 22:44:33 +0000 (17:44 -0500)]
diff.*.xfuncname which uses "extended" regex's for hunk header selection

Currently, the hunk headers produced by 'diff -p' are customizable by
setting the diff.*.funcname option in the config file. The 'funcname' option
takes a basic regular expression. This functionality was designed using the
GNU regex library which, by default, allows using backslashed versions of
some extended regular expression operators, even in Basic Regular Expression
mode. For example, the following characters, when backslashed, are
interpreted according to the extended regular expression rules: ?, +, and |.
As such, the builtin funcname patterns were created using some extended
regular expression operators.

Other platforms which adhere more strictly to the POSIX spec do not
interpret the backslashed extended RE operators in Basic Regular Expression
mode. This causes the pattern matching for the builtin funcname patterns to
fail on those platforms.

Introduce a new option 'xfuncname' which uses extended regular expressions,
and advertise it _instead_ of funcname. Since most users are on GNU
platforms, the majority of funcname patterns are created and tested there.
Advertising only xfuncname should help to avoid the creation of non-portable
patterns which work with GNU regex but not elsewhere.

Additionally, the extended regular expressions may be less ugly and
complicated compared to the basic RE since many common special operators do
not need to be backslashed.

For example, the GNU Basic RE:

    ^[  ]*\\(\\(public\\|static\\).*\\)$

becomes the following Extended RE:

    ^[  ]*((public|static).*)$

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff.c: associate a flag with each pattern and use it for compiling regex
Brandon Casey [Thu, 18 Sep 2008 22:42:48 +0000 (17:42 -0500)]
diff.c: associate a flag with each pattern and use it for compiling regex

This is in preparation for allowing extended regular expression patterns.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff.c: return pattern entry pointer rather than just the hunk header pattern
Brandon Casey [Thu, 18 Sep 2008 22:40:48 +0000 (17:40 -0500)]
diff.c: return pattern entry pointer rather than just the hunk header pattern

This is in preparation for associating a flag with each pattern which will
control how the pattern is interpreted. For example, as a basic or extended
regular expression.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'dp/maint-rebase-fix' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:25 +0000 (19:53 -0700)]
Merge branch 'dp/maint-rebase-fix' into maint

* dp/maint-rebase-fix:
  git-rebase--interactive: auto amend only edited commit
  git-rebase-interactive: do not squash commits on abort

16 years agoMerge branch 'jc/maint-checkout-keep-remove' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:22 +0000 (19:53 -0700)]
Merge branch 'jc/maint-checkout-keep-remove' into maint

* jc/maint-checkout-keep-remove:
  checkout: do not lose staged removal

16 years agoMerge branch 'jc/maint-diff-quiet' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:12 +0000 (19:53 -0700)]
Merge branch 'jc/maint-diff-quiet' into maint

* jc/maint-diff-quiet:
  diff --quiet: make it synonym to --exit-code >/dev/null
  diff Porcelain: do not disable auto index refreshing on -C -C

16 years agoMerge branch 'jc/maint-name-hash-clear' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:06 +0000 (19:53 -0700)]
Merge branch 'jc/maint-name-hash-clear' into maint

* jc/maint-name-hash-clear:
  discard_cache: reset lazy name_hash bit

16 years agoMerge branch 'jc/maint-template-permbits' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:01 +0000 (19:53 -0700)]
Merge branch 'jc/maint-template-permbits' into maint

* jc/maint-template-permbits:
  Fix permission bits on sources checked out with an overtight umask

16 years agoMerge branch 'mh/maint-honor-no-ssl-verify' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:52:57 +0000 (19:52 -0700)]
Merge branch 'mh/maint-honor-no-ssl-verify' into maint

* mh/maint-honor-no-ssl-verify:
  Don't verify host name in SSL certs when GIT_SSL_NO_VERIFY is set

16 years agosha1_file: link() returns -1 on failure, not errno
Thomas Rast [Thu, 18 Sep 2008 22:24:46 +0000 (00:24 +0200)]
sha1_file: link() returns -1 on failure, not errno

5723fe7 (Avoid cross-directory renames and linking on object creation,
2008-06-14) changed the call to use link() directly instead of through a
custom wrapper, but forgot that it returns 0 or -1, not 0 or errno.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake git archive respect core.autocrlf when creating zip format archives
Charles Bailey [Thu, 18 Sep 2008 20:01:20 +0000 (21:01 +0100)]
Make git archive respect core.autocrlf when creating zip format archives

There is currently no call to git_config at the start of cmd_archive.
When creating tar archives the core config is read as a side-effect of
reading the tar specific config, but this doesn't happen for zip
archives.

The consequence is that in a configuration with core.autocrlf set,
although files in a tar archive are created with crlf line endings,
files in a zip archive retain unix line endings.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Acked-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd new test to demonstrate git archive core.autocrlf inconsistency
Charles Bailey [Thu, 18 Sep 2008 20:01:13 +0000 (21:01 +0100)]
Add new test to demonstrate git archive core.autocrlf inconsistency

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: avoid warnings for commits without body
Joey Hess [Fri, 5 Sep 2008 18:26:29 +0000 (14:26 -0400)]
gitweb: avoid warnings for commits without body

In the unusual case when there is no commit message, gitweb would
output an uninitialized value warning.

Signed-off-by: Joey Hess <joey@kitenet.net>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoClarified gitattributes documentation regarding custom hunk header.
Garry Dolley [Wed, 17 Sep 2008 06:20:39 +0000 (23:20 -0700)]
Clarified gitattributes documentation regarding custom hunk header.

The only part of the hunk header that we can change is the "TEXT"
portion.  Additionally, a few grammatical errors have been corrected.

Signed-off-by: Garry Dolley <gdolley@ucla.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: fix handling of even funkier branch names
Eric Wong [Sun, 7 Sep 2008 03:18:18 +0000 (20:18 -0700)]
git-svn: fix handling of even funkier branch names

Apparently do_switch() tolerates the lack of escaping in less
funky branch names.  For the really strange and scary ones, we
need to escape them properly.  It strangely maintains compatible
with the existing handling of branch names with spaces and
exclamation marks.

Reported-by: m.skoric@web.de ($gmane/94677)
Signed-off-by: Eric Wong <normalperson@yhbt.net>
16 years agogit-svn: Always create a new RA when calling do_switch for svn://
Alec Berryman [Sun, 14 Sep 2008 21:14:16 +0000 (17:14 -0400)]
git-svn: Always create a new RA when calling do_switch for svn://

Not doing so caused the "Malformed network data" error when a directoy
was deleted and replaced with a copy from an older version.

Signed-off-by: Alec Berryman <alec@thened.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: factor out svnserve test code for later use
Alec Berryman [Sun, 14 Sep 2008 21:14:15 +0000 (17:14 -0400)]
git-svn: factor out svnserve test code for later use

Signed-off-by: Alec Berryman <alec@thened.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff/diff-files: do not use --cc too aggressively
Junio C Hamano [Thu, 18 Sep 2008 07:32:37 +0000 (00:32 -0700)]
diff/diff-files: do not use --cc too aggressively

Textual diff output for unmerged paths was too eager to give condensed
combined diff.  Even though "diff -c" (and "diff-files -c -p") is a
request to view combined diff without condensing (otherwise the user would
have explicitly asked for --cc, not -c), we showed "--cc" output anyway.

0fe7c1d (built-in diff: assorted updates, 2006-04-29) claimed to be
careful about doing this, but its breakage was hidden because back then
"git diff" was still a shell script that did not use the codepath it
introduced fully.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoCosmetical command name fix
Heikki Orsila [Sat, 13 Sep 2008 16:31:31 +0000 (19:31 +0300)]
Cosmetical command name fix

If we came from git.c the first arg would be "archive".
"git-archive" isn't a bug because cmd_archive() doesn't check
the first arg.

Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoStart conforming code to "git subcmd" style part 3
Heikki Orsila [Sat, 13 Sep 2008 17:18:36 +0000 (20:18 +0300)]
Start conforming code to "git subcmd" style part 3

User notifications are presented as 'git cmd', and code comments
are presented as '"cmd"' or 'git's cmd', rather than 'git-cmd'.

Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9700/test.pl: remove File::Temp requirement
Brandon Casey [Mon, 15 Sep 2008 16:25:22 +0000 (11:25 -0500)]
t9700/test.pl: remove File::Temp requirement

The object oriented version of File::Temp is a rather new incarnation it
seems. The File::Temp man page for v5.8.0 says "(NOT YET IMPLEMENTED)" in
the 'Objects' section. Instead of creating a file with a unique name in
the system TMPDIR, we can create our own temporary file with a static
name and use that instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Tested-by: Tom G. Christensen <tgc@statsbiblioteket.dk> on RHEL 3, Perl 5.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9700/test.pl: avoid bareword 'STDERR' in 3-argument open()
Brandon Casey [Mon, 15 Sep 2008 16:23:24 +0000 (11:23 -0500)]
t9700/test.pl: avoid bareword 'STDERR' in 3-argument open()

Some versions of perl complain when 'STDERR' is used as the third argument
in the 3-argument form of open(). Convert to the 2-argument form which is
described for duping STDERR in my second edition camel book.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Tested-by: Tom G. Christensen <tgc@statsbiblioteket.dk> on RHEL 3, Perl 5.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoGIT 1.6.0.2 v1.6.0.2
Junio C Hamano [Fri, 12 Sep 2008 23:18:47 +0000 (16:18 -0700)]
GIT 1.6.0.2

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