gitweb.git
git checkout: don't warn about unborn branch if -f... Matt McCutchen Mon, 24 Nov 2008 06:55:22 +0000 (01:55 -0500)

git checkout: don't warn about unborn branch if -f is already passed

I think it's unnecessary to warn that the checkout has been forced due to an
unborn current branch if -f has been explicitly passed. For one project, I am
using git-new-workdir to create workdirs from a bare repository whose HEAD is
set to an unborn branch, and this warning started to irritate me.

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash: offer refs instead of filenames for 'git revert'SZEDER Gábor Thu, 27 Nov 2008 13:35:53 +0000 (14:35 +0100)

bash: offer refs instead of filenames for 'git revert'

The completion script for 'git revert' currently offers options and
filenames. However, 'git revert' doesn't take any filenames from the
command line, but a single commit. Therefore, it's more sane to offer
refs instead.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash: remove dashed command leftoversSZEDER Gábor Thu, 27 Nov 2008 13:35:38 +0000 (14:35 +0100)

bash: remove dashed command leftovers

Commit 5a625b07 (bash: remove fetch, push, pull dashed form leftovers,
2008-10-03) did that already, but there were still some git-cmd left
here and there.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'pw/maint-p4' into maintJunio C Hamano Thu, 27 Nov 2008 21:18:25 +0000 (13:18 -0800)

Merge branch 'pw/maint-p4' into maint

* pw/maint-p4:
git-p4: fix keyword-expansion regex

git-p4: fix keyword-expansion regexPete Wyckoff Wed, 26 Nov 2008 18:52:15 +0000 (13:52 -0500)

git-p4: fix keyword-expansion regex

This text:

my $dir = $File::Find::dir;
return if ($dir !~ m,$options->{dirpat}$,);

was improperly converted to:

my $dir = $File$dir !~ m,$options->{dirpat}$,);

by the keyword identifier expansion code. Add a \n
to make sure the regex doesn't go across end-of-line
boundaries.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix typos in the documentation.Ralf Wildenhues Thu, 27 Nov 2008 07:32:01 +0000 (08:32 +0100)

Fix typos in the documentation.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mm/maint-sort-config-doc' into maintJunio C Hamano Wed, 26 Nov 2008 19:57:15 +0000 (11:57 -0800)

Merge branch 'mm/maint-sort-config-doc' into maint

* mm/maint-sort-config-doc:
config.txt: alphabetize configuration sections

config.txt: alphabetize configuration sectionsMatt McCutchen Wed, 26 Nov 2008 08:26:50 +0000 (03:26 -0500)

config.txt: alphabetize configuration sections

I figured the sections might as well be in some order, so I chose alphabetical
but with "core" at the beginning. This should help people add new variables
in the right places.

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach "git diff" to honour --[no-]ext-diffJunio C Hamano Wed, 26 Nov 2008 17:58:41 +0000 (09:58 -0800)

Teach "git diff" to honour --[no-]ext-diff

The original intention of 72909be (Add diff-option --ext-diff, 2007-06-30)
was to optionally allow the use of external diff viewer in "git log"
family (while keeping them disabled by default). It exposed the "allow
external diff" bit to the UI, but forgot to adjust the "git diff" codepath
that was set up to always allow use of the external diff viewer.

Noticed by Nazri Ramliy; tests by René Scharfe squashed in.

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

Fix misleading wording for git-cherry-pickBryan Drewery Thu, 20 Nov 2008 05:11:42 +0000 (23:11 -0600)

Fix misleading wording for git-cherry-pick

Documentation for -n implies that -x is normally
used, however this is no longer true.

Signed-off-by: Bryan Drewery <bryan@shatow.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

request-pull: make usage string match manpageStefan Naewe Mon, 17 Nov 2008 08:57:19 +0000 (09:57 +0100)

request-pull: make usage string match manpage

The usage string of 'git request-pull' differs from he manpage
which gives the correct 'synopsis'.

Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach ls-files --with-tree=<tree> to work with options... Junio C Hamano Sun, 16 Nov 2008 08:10:25 +0000 (00:10 -0800)

Teach ls-files --with-tree=<tree> to work with options other than -c

Originally --with-tree=<tree> was designed for the sole purpose of
checking if a given pathspec makes sense as a parameter to git-commit
using it in conjunction with --error-unmatch. It had logic to avoid
showing the same entry (one came from the original index, another from the
overlayed tree) twice so that it works with -c (i.e. "show-cached"), but
otherwise it was not designed to work with the flags such as -m, -d, etc.

This teaches the same logic to cover the codepath for -m and -d.

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

builtin-ls-files.c: coding style fix.Junio C Hamano Sun, 16 Nov 2008 08:15:43 +0000 (00:15 -0800)

builtin-ls-files.c: coding style fix.

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

Documentation: git-svn: fix example for centralized... Jan Krüger Fri, 14 Nov 2008 17:45:14 +0000 (18:45 +0100)

Documentation: git-svn: fix example for centralized SVN clone

The example that tells users how to centralize the effort of the initial
git svn clone operation doesn't work properly. It uses rebase but that
only works if HEAD exists. This adds one extra command to create a
somewhat sensible HEAD that should work in all cases.

Signed-off-by: Jan Krüger <jk@jk.gs>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: fix links to "everyday.html"Christian Couder Fri, 14 Nov 2008 12:26:47 +0000 (13:26 +0100)

Documentation: fix links to "everyday.html"

In some places the links are wrong. They should be:
"link:everyday.html", instead of: "linkgit:everyday[7]".
This patch fixes that.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revision.c: use proper data type in call to sizeof... Brandon Casey Thu, 13 Nov 2008 20:20:37 +0000 (14:20 -0600)

revision.c: use proper data type in call to sizeof() within xrealloc

A type char** was being used instead of char*.

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

date/time: do not get confused by fractional secondsLinus Torvalds Sun, 17 Aug 2008 04:25:40 +0000 (21:25 -0700)

date/time: do not get confused by fractional seconds

The date/time parsing code was confused if the input time HH:MM:SS is
followed by fractional seconds. Since we do not record anything finer
grained than seconds, we could just drop fractional part, but there is a
twist.

We have taught people that not just spaces but dot can be used as word
separators when spelling things like:

$ git log --since 2.days
$ git show @{12:34:56.7.days.ago}

and we shouldn't mistake "7" in the latter example as a fraction and
discard it.

The rules are:

- valid days of month/mday are always single or double digits.

- valid years are either two or four digits

No, we don't support the year 600 _anyway_, since our encoding is based
on the UNIX epoch, and the day we worry about the year 10,000 is far
away and we can raise the limit to five digits when we get closer.

- Other numbers (eg "600 days ago") can have any number of digits, but
they cannot start with a zero. Again, the only exception is for
two-digit numbers, since that is fairly common for dates ("Dec 01" is
not unheard of)

So that means that any milli- or micro-second would be thrown out just
because the number of digits shows that it cannot be an interesting date.

A milli- or micro-second can obviously be a perfectly fine number
according to the rules above, as long as it doesn't start with a '0'. So
if we have

12:34:56.123

then that '123' gets parsed as a number, and we remember it. But because
it's bigger than 31, we'll never use it as such _unless_ there is
something after it to trigger that use.

So you can say "12:34:56.123.days.ago", and because of the "days", that
123 will actually be meaninful now.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start 1.6.0.5 cycleJunio C Hamano Wed, 12 Nov 2008 23:03:03 +0000 (15:03 -0800)

Start 1.6.0.5 cycle

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

Fix pack.packSizeLimit and --max-pack-size handlingNicolas Pitre Wed, 12 Nov 2008 18:23:58 +0000 (13:23 -0500)

Fix pack.packSizeLimit and --max-pack-size handling

If the limit was sufficiently low, having a single object written
could bust the limit (by design), but caused the remaining allowed
size to go negative for subsequent objects, which for an unsigned
variable is a rather huge limit.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

checkout: Fix "initial checkout" detectionJunio C Hamano Wed, 12 Nov 2008 19:52:35 +0000 (11:52 -0800)

checkout: Fix "initial checkout" detection

Earlier commit 5521883 (checkout: do not lose staged removal, 2008-09-07)
tightened the rule to prevent switching branches from losing local
changes, so that staged removal of paths can be protected, while
attempting to keep a loophole to still allow a special case of switching
out of an un-checked-out state.

However, the loophole was made a bit too tight, and did not allow
switching from one branch (in an un-checked-out state) to check out
another branch.

The change to builtin-checkout.c in this commit loosens it to allow this,
by not insisting the original commit and the new commit to be the same.

It also introduces a new function, is_index_unborn (and an associated
macro, is_cache_unborn), to check if the repository is truly in an
un-checked-out state more reliably, by making sure that $GIT_INDEX_FILE
did not exist when populating the in-core index structure. A few places
the earlier commit 5521883 added the check for the initial checkout
condition are updated to use this function.

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

Remove the period after the git-check-attr summaryMatt Kraai Fri, 7 Nov 2008 12:26:55 +0000 (04:26 -0800)

Remove the period after the git-check-attr summary

The period at the end of the git-check-attr summary causes there to be
two periods after the summary in the git(1) manual page.

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix non-literal format in printf-style callsDaniel Lowe Mon, 10 Nov 2008 21:07:52 +0000 (16:07 -0500)

Fix non-literal format in printf-style calls

These were found using gcc 4.3.2-1ubuntu11 with the warning:

warning: format not a string literal and no format arguments

Incorporated suggestions from Brandon Casey <casey@nrlssc.navy.mil>.

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

git-submodule: Avoid printing a spurious message.Alexandre Julliard Tue, 11 Nov 2008 21:09:16 +0000 (22:09 +0100)

git-submodule: Avoid printing a spurious message.

Fix 'git submodule update' to avoid printing a spurious "Maybe you want
to use 'update --init'?" once for every uninitialized submodule it
encounters.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git ls-remote: make usage string match manpageStefan Naewe Tue, 11 Nov 2008 15:52:31 +0000 (16:52 +0100)

git ls-remote: make usage string match manpage

The usage string of 'git ls-remote' is pretty terse. The manpage
however gives the correct 'synopsis'.

Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: help people who run 'make check' by mistakeJunio C Hamano Tue, 11 Nov 2008 21:12:17 +0000 (13:12 -0800)

Makefile: help people who run 'make check' by mistake

The target to run self test is 'make test', but there are people who try
'make check' and worse yet do not have sparse installed.

Suggest 'make test' target when they do not have 'sparse'.

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

Documentation: bisect: change a few instances of "git... Christian Couder Sun, 9 Nov 2008 13:53:14 +0000 (14:53 +0100)

Documentation: bisect: change a few instances of "git-cmd" to "git cmd"

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: rev-list: change a few instances of... Christian Couder Sun, 9 Nov 2008 13:46:35 +0000 (14:46 +0100)

Documentation: rev-list: change a few instances of "git-cmd" to "git cmd"

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

checkout: Don't crash when switching away from an inval... Alexandre Julliard Sat, 8 Nov 2008 12:03:59 +0000 (13:03 +0100)

checkout: Don't crash when switching away from an invalid branch.

When using alternates, it is possible for HEAD to end up pointing to
an invalid commit. git checkout should be able to recover from that
situation without crashing.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

GIT 1.6.0.4 v1.6.0.4Junio C Hamano Sun, 9 Nov 2008 01:33:50 +0000 (17:33 -0800)

GIT 1.6.0.4

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

Update RPM spec for the new location of git-cvsserver.Quy Tonthat Fri, 12 Sep 2008 16:22:44 +0000 (02:22 +1000)

Update RPM spec for the new location of git-cvsserver.

git-cvsserver has been moved from libexecdir to bindir.

Signed-off-by: Quy Tonthat <qtonthat@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'cb/maint-update-ref-fix' into maintJunio C Hamano Sun, 9 Nov 2008 01:32:49 +0000 (17:32 -0800)

Merge branch 'cb/maint-update-ref-fix' into maint

* cb/maint-update-ref-fix:
push: fix local refs update if already up-to-date
do not force write of packed refs

Merge branch 'cj/maint-gitpm-fix-maybe-self' into maintJunio C Hamano Sun, 9 Nov 2008 00:50:25 +0000 (16:50 -0800)

Merge branch 'cj/maint-gitpm-fix-maybe-self' into maint

* cj/maint-gitpm-fix-maybe-self:
Git.pm: do not break inheritance

Merge branch 'ar/maint-mksnpath' into maintJunio C Hamano Sun, 9 Nov 2008 00:13:19 +0000 (16:13 -0800)

Merge branch 'ar/maint-mksnpath' into maint

* ar/maint-mksnpath:
Use git_pathdup instead of xstrdup(git_path(...))
git_pathdup: returns xstrdup-ed copy of the formatted path
Fix potentially dangerous use of git_path in ref.c
Add git_snpath: a .git path formatting routine with output buffer
Fix potentially dangerous uses of mkpath and git_path
Fix mkpath abuse in dwim_ref and dwim_log of sha1_name.c
Add mksnpath which allows you to specify the output buffer

Conflicts:
builtin-revert.c
rerere.c

Merge branch 'mv/maint-branch-m-symref' into maintJunio C Hamano Sun, 9 Nov 2008 00:07:37 +0000 (16:07 -0800)

Merge branch 'mv/maint-branch-m-symref' into maint

* mv/maint-branch-m-symref:
update-ref --no-deref -d: handle the case when the pointed ref is packed
git branch -m: forbid renaming of a symref
Fix git update-ref --no-deref -d.
rename_ref(): handle the case when the reflog of a ref does not exist
Fix git branch -m for symrefs.

push: fix local refs update if already up-to-dateClemens Buchacher Wed, 5 Nov 2008 20:55:54 +0000 (21:55 +0100)

push: fix local refs update if already up-to-date

git push normally updates local refs only after a successful push. If the
remote already has the updates -- pushed indirectly through another repository,
for example -- we forget to update local tracking refs.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

do not force write of packed refsClemens Buchacher Wed, 5 Nov 2008 20:55:53 +0000 (21:55 +0100)

do not force write of packed refs

We force writing a ref if it does not exist. Originally, we only had to look
for the ref file to check if it existed. Now we have to look for a packed ref
as well. Luckily, resolve_ref already does all the work for us.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch documentation: mention the special case... Junio C Hamano Mon, 3 Nov 2008 04:45:55 +0000 (20:45 -0800)

format-patch documentation: mention the special case of showing a single commit

Even long timers seem to have missed that "format-patch -1 $commit" is a
much simpler and more obvious way to say "format-patch $commit^..$commit"
from the current documentation (and an example "format-patch -3 $commit"
to get three patches). Add an explicit instruction in a much earlier part
of the documentation to make it easier to find.

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

Add reference for status letters in documentation.Yann Dirson Sun, 2 Nov 2008 13:37:28 +0000 (14:37 +0100)

Add reference for status letters in documentation.

Also fix error in diff_filepair::status documentation, and point to
the in-code reference as well as the doc.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Document that git-log takes --all-match.Mikael Magnusson Sun, 2 Nov 2008 18:32:46 +0000 (19:32 +0100)

Document that git-log takes --all-match.

Signed-off-by: Mikael Magnusson <mikachu@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft 1.6.0.4 release notesJunio C Hamano Sun, 2 Nov 2008 22:35:41 +0000 (14:35 -0800)

Update draft 1.6.0.4 release notes

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

Merge branch 'js/maint-fetch-update-head' into maintJunio C Hamano Sun, 2 Nov 2008 21:37:16 +0000 (13:37 -0800)

Merge branch 'js/maint-fetch-update-head' into maint

* js/maint-fetch-update-head:
pull: allow "git pull origin $something:$current_branch" into an unborn branch
Fix fetch/pull when run without --update-head-ok

Merge branch 'jk/maint-ls-files-other' into maintJunio C Hamano Sun, 2 Nov 2008 21:37:13 +0000 (13:37 -0800)

Merge branch 'jk/maint-ls-files-other' into maint

* jk/maint-ls-files-other:
refactor handling of "other" files in ls-files and status

Merge branch 'jc/maint-reset-remove-unmerged-new' into... Junio C Hamano Sun, 2 Nov 2008 21:36:20 +0000 (13:36 -0800)

Merge branch 'jc/maint-reset-remove-unmerged-new' into maint

* jc/maint-reset-remove-unmerged-new:
reset --hard/read-tree --reset -u: remove unmerged new paths

Merge branch 'jc/maint-co-track' into maintJunio C Hamano Sun, 2 Nov 2008 21:36:14 +0000 (13:36 -0800)

Merge branch 'jc/maint-co-track' into maint

* jc/maint-co-track:
Enhance hold_lock_file_for_{update,append}() API
demonstrate breakage of detached checkout with symbolic link HEAD
Fix "checkout --track -b newbranch" on detached HEAD

Start 1.6.0.4 cycleJunio C Hamano Sun, 2 Nov 2008 07:14:04 +0000 (00:14 -0700)

Start 1.6.0.4 cycle

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

add instructions on how to send patches to the mailing... Tom Preston-Werner Sat, 1 Nov 2008 15:28:18 +0000 (15:28 +0000)

add instructions on how to send patches to the mailing list with Gmail

Gmail is one of the most popular email providers in the world. Now that Gmail
supports IMAP, sending properly formatted patches via `git imap-send` is
trivial. This section in SubmittingPatches explains how to do so.

Signed-off-by: Tom Preston-Werner <tom@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/gitattributes: Add subsection header... Jakub Narebski Sat, 1 Nov 2008 06:24:55 +0000 (06:24 +0000)

Documentation/gitattributes: Add subsection header for each attribute

This makes attributes easier to find; before this patch some
attributes had individual subsections, and some didn't.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git send-email: avoid leaking directory file descriptors.Pierre Habouzit Fri, 31 Oct 2008 18:57:10 +0000 (18:57 +0000)

git send-email: avoid leaking directory file descriptors.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-pack: do not send out single-level refs such as... Jeff King Wed, 29 Oct 2008 05:17:55 +0000 (05:17 +0000)

send-pack: do not send out single-level refs such as refs/stash

Since no version of receive-pack accepts these "funny refs", we should
mirror the check when considering the list of refs to send. IOW, don't
even make them eligible for matching or mirroring.

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

fix overlapping memcpy in normalize_absolute_pathJeff King Thu, 23 Oct 2008 04:32:23 +0000 (04:32 +0000)

fix overlapping memcpy in normalize_absolute_path

The comments for normalize_absolute_path explicitly claim
that the source and destination buffers may be the same
(though they may not otherwise overlap). Thus the call to
memcpy may involve copying overlapping data, and memmove
should be used instead.

This fixes a valgrind error in t1504.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pack-objects: avoid reading uninitalized dataJeff King Thu, 23 Oct 2008 04:31:03 +0000 (04:31 +0000)

pack-objects: avoid reading uninitalized data

In the main loop of find_deltas, we do:

struct object_entry *entry = *list++;
...
if (!*list_size)
...
break

Because we look at and increment *list _before_ the check of
list_size, in the very last iteration of the loop we will
look at uninitialized data, and increment the pointer beyond
one past the end of the allocated space. Since we don't
actually do anything with the data until after the check,
this is not a problem in practice.

But since it technically violates the C standard, and
because it provokes a spurious valgrind warning, let's just
move the initialization of entry to a safe place.

This fixes valgrind errors in t5300, t5301, t5302, t303, and
t9400.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

correct cache_entry allocationJeff King Thu, 23 Oct 2008 04:30:58 +0000 (04:30 +0000)

correct cache_entry allocation

Most cache_entry structs are allocated by using the
cache_entry_size macro, which rounds the size of the struct
up to the nearest multiple of 8 bytes (presumably to avoid
memory fragmentation).

There is one exception: the special "conflict entry" is
allocated with an empty name, and so is explicitly given
just one extra byte to hold the NUL.

However, later code doesn't realize that this particular
struct has been allocated differently, and happily tries
reading and copying it based on the ce_size macro, which
assumes the 8-byte alignment.

This can lead to reading uninitalized data, though since
that data is simply padding, there shouldn't be any problem
as a result. Still, it makes sense to hold the padding
assumption so as not to surprise later maintainers.

This fixes valgrind errors in t1005, t3030, t4002, and
t4114.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' of git://repo.or.cz/git-gui into... Junio C Hamano Sun, 2 Nov 2008 05:31:14 +0000 (22:31 -0700)

Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
git-gui: Help identify aspell version on Windows too

update-ref --no-deref -d: handle the case when the... Miklos Vajna Fri, 31 Oct 2008 23:25:44 +0000 (00:25 +0100)

update-ref --no-deref -d: handle the case when the pointed ref is packed

In this case we did nothing in the past, but we should delete the
reference in fact.

The problem was that when the symref is not packed but the referenced
ref is packed, then we assumed that the symref is packed as well, but
symrefs are never packed.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: change dashed git-commit-tree to git commit... Deskin Miller Fri, 31 Oct 2008 04:10:25 +0000 (00:10 -0400)

git-svn: change dashed git-commit-tree to git commit-tree

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: clarify information about 'ident' attributeJan Krüger Thu, 30 Oct 2008 18:14:33 +0000 (19:14 +0100)

Documentation: clarify information about 'ident' attribute

The documentation spoke of the attribute being set "to" a path; this can
mistakenly be interpreted as "the attribute needs to have its value set to
some kind of path". This clarifies things.

Signed-off-by: Jan Krüger <jk@jk.gs>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: add doubledash to "git show"Markus Heidelberg Fri, 31 Oct 2008 00:04:46 +0000 (01:04 +0100)

bash completion: add doubledash to "git show"

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use test-chmtime -v instead of perl in t5000 to get... Alex Riesen Thu, 30 Oct 2008 10:20:27 +0000 (11:20 +0100)

Use test-chmtime -v instead of perl in t5000 to get mtime of a file

The test was broken on admittedly broken combination of Windows, Cygwin,
and ActiveState Perl.

Signed-off-by: Alex Riesen <ariesen@harmanbecker.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add --verbose|-v to test-chmtimeAlex Riesen Thu, 30 Oct 2008 09:00:29 +0000 (10:00 +0100)

Add --verbose|-v to test-chmtime

This allows us replace perl when getting the mtime of a file because
of time zone conversions, though at the moment only one platform which
does this has been identified: Cygwin when used with ActiveState Perl
(as usual).

The output format is:

<mtime1> TAB <filename1> <LF>
<mtime2> TAB <filename2> <LF>
...

which, if only mtime is needed can be parsed with cut(1):

test-chmtime -v +0 filename1 | cut -f 1

Also, the change adds a description of programs features, with examples.

Signed-off-by: Alex Riesen <ariesen@harmanbecker.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

asciidoc: add minor workaround to add an empty line... Jonas Fonseca Thu, 30 Oct 2008 10:45:03 +0000 (11:45 +0100)

asciidoc: add minor workaround to add an empty line after code blocks

Insert an empty <simpara> in manpages after code blocks to force and
empty line.

The problem can be seen on the manpage for the git tutorial, where an
example command and the following paragraph is printed with no empty
line between them:

First, note that you can get documentation for a command such as git
log --graph with:

$ man git-log
It is a good idea to introduce yourself to git [...]

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use git_pathdup instead of xstrdup(git_path(...))Alex Riesen Mon, 27 Oct 2008 10:22:09 +0000 (11:22 +0100)

Use git_pathdup instead of xstrdup(git_path(...))

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

git_pathdup: returns xstrdup-ed copy of the formatted... Alex Riesen Mon, 27 Oct 2008 10:17:51 +0000 (11:17 +0100)

git_pathdup: returns xstrdup-ed copy of the formatted path

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

Fix potentially dangerous use of git_path in ref.cAlex Riesen Mon, 27 Oct 2008 10:11:40 +0000 (11:11 +0100)

Fix potentially dangerous use of git_path in ref.c

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

Add git_snpath: a .git path formatting routine with... Alex Riesen Mon, 27 Oct 2008 09:22:21 +0000 (10:22 +0100)

Add git_snpath: a .git path formatting routine with output buffer

The function's purpose is to replace git_path where the buffer of
formatted path may not be reused by subsequent calls of the function
or will be copied anyway.

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

Plug a memleak in builtin-revertAlex Riesen Tue, 28 Oct 2008 17:27:33 +0000 (18:27 +0100)

Plug a memleak in builtin-revert

Probably happened when working around git_path's problem with returned
buffer being reused.

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

git branch -m: forbid renaming of a symrefMiklos Vajna Wed, 29 Oct 2008 00:05:27 +0000 (01:05 +0100)

git branch -m: forbid renaming of a symref

There may be cases where one would really want to rename the symbolic
ref without changing its value, but "git branch -m" is not such a
use-case.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add file delete/create info when we overflow rename_limitLinus Torvalds Mon, 27 Oct 2008 20:06:16 +0000 (13:06 -0700)

Add file delete/create info when we overflow rename_limit

When we refuse to do rename detection due to having too many files
created or deleted, let the user know the numbers. That way there is a
reasonable starting point for setting the diff.renamelimit option.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Install git-cvsserver in $(bindir)Nanako Shiraishi Wed, 10 Sep 2008 11:03:18 +0000 (20:03 +0900)

Install git-cvsserver in $(bindir)

It is one of the server side programs and needs to be found on usual $PATH.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Install git-shell in bindir, tooTommi Virtanen Sun, 24 Aug 2008 20:23:25 +0000 (23:23 +0300)

Install git-shell in bindir, too

/etc/passwd shell field must be something execable, you can't enter
"/usr/bin/git shell" there. git-shell must be present as a separate
executable, or it is useless.

Signed-off-by: Tommi Virtanen <tv@eagain.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix potentially dangerous uses of mkpath and git_pathAlex Riesen Sun, 26 Oct 2008 22:08:52 +0000 (23:08 +0100)

Fix potentially dangerous uses of mkpath and git_path

Replace them with mksnpath/git_snpath and a local buffer
for the resulting string.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix mkpath abuse in dwim_ref and dwim_log of sha1_name.cAlex Riesen Sun, 26 Oct 2008 22:07:24 +0000 (23:07 +0100)

Fix mkpath abuse in dwim_ref and dwim_log of sha1_name.c

Otherwise the function sometimes fail to resolve obviously correct
refnames, because the string data pointed to by "str" argument were
reused.

The change in dwim_log does not fix anything, just optimizes away
strcpy code as the path can be created directly in the available
buffer.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add mksnpath which allows you to specify the output... Alex Riesen Sun, 26 Oct 2008 21:59:13 +0000 (22:59 +0100)

Add mksnpath which allows you to specify the output buffer

This is just vsnprintf's but additionally calls cleanup_path() on the
result. To be used as alternatives to mkpath() where the buffer for the
created path may not be reused by subsequent calls of the same formatting
function.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add -p: warn if only binary changes presentThomas Rast Sun, 26 Oct 2008 19:37:06 +0000 (20:37 +0100)

add -p: warn if only binary changes present

Current 'git add -p' will say "No changes." if there are no changes to
text files, which can be confusing if there _are_ changes to binary
files. Add some code to distinguish the two cases, and give a
different message in the latter one.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-archive: work in bare reposCharles Bailey Sat, 25 Oct 2008 15:38:14 +0000 (11:38 -0400)

git-archive: work in bare repos

This moves the call to git_config to a place where it doesn't break the
logic for using git archive in a bare repository but retains the fix to
make git archive respect core.autocrlf.

Tests are by René Scharfe.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Tested-by: Deskin Miller <deskinm@umich.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix git update-ref --no-deref -d.Miklos Vajna Sun, 26 Oct 2008 02:33:58 +0000 (03:33 +0100)

Fix git update-ref --no-deref -d.

Till now --no-deref was just ignored when deleting refs, fix this.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rename_ref(): handle the case when the reflog of a... Miklos Vajna Sun, 26 Oct 2008 02:33:57 +0000 (03:33 +0100)

rename_ref(): handle the case when the reflog of a ref does not exist

We tried to check if a reflog of a ref is a symlink without first
checking if it exists, which is a bug.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix git branch -m for symrefs.Miklos Vajna Sun, 26 Oct 2008 02:33:56 +0000 (03:33 +0100)

Fix git branch -m for symrefs.

This had two problems with symrefs. First, it copied the actual sha1
instead of the "pointer", second it failed to remove the old ref after a
successful rename.

Given that till now delete_ref() always dereferenced symrefs, a new
parameters has been introduced to delete_ref() to allow deleting refs
without a dereference.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: change dashed git-config to git configDeskin Miller Thu, 23 Oct 2008 19:21:34 +0000 (15:21 -0400)

git-svn: change dashed git-config to git config

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

GIT 1.6.0.3 v1.6.0.3Junio C Hamano Tue, 21 Oct 2008 20:37:42 +0000 (13:37 -0700)

GIT 1.6.0.3

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

rehabilitate 'git index-pack' inside the object storeNicolas Pitre Tue, 21 Oct 2008 01:17:07 +0000 (21:17 -0400)

rehabilitate 'git index-pack' inside the object store

Before commit d0b92a3f6e it was possible to run 'git index-pack'
directly in the .git/objects/pack/ directory. Restore that ability.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix testcase failure when extended attributes are in useJunio C Hamano Mon, 20 Oct 2008 05:51:17 +0000 (22:51 -0700)

Fix testcase failure when extended attributes are in use

06cbe855 (Make core.sharedRepository more generic, 2008-04-16) made
several testcases in t1301-shared-repo.sh which fail if on a system
which creates files with extended attributes (e.g. SELinux), since ls
appends a '+' sign to the permission set in such cases. In fact,
POSIX.1 allows ls to add a single printable character after the usual
3x3 permission bits to show that an optional alternate/additional access
method is associated with the path.

This fixes the testcase to strip any such sign prior to verifying the
permission set.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tested-by: Deskin Miller <deskinm@umich.edu>

Git.pm: do not break inheritanceChristian Jaeger Sat, 18 Oct 2008 18:25:12 +0000 (20:25 +0200)

Git.pm: do not break inheritance

Make it possible to write subclasses of Git.pm

Signed-off-by: Christian Jaeger <christian@jaeger.mine.nu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Enhance hold_lock_file_for_{update,append}() APIJunio C Hamano Fri, 17 Oct 2008 22:44:39 +0000 (15:44 -0700)

Enhance hold_lock_file_for_{update,append}() API

This changes the "die_on_error" boolean parameter to a mere "flags", and
changes the existing callers of hold_lock_file_for_update/append()
functions to pass LOCK_DIE_ON_ERROR.

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

demonstrate breakage of detached checkout with symbolic... Junio C Hamano Fri, 17 Oct 2008 22:56:11 +0000 (15:56 -0700)

demonstrate breakage of detached checkout with symbolic link HEAD

When core.prefersymlinkrefs is in use, detaching the HEAD by
checkout incorrectly clobbers the tip of the current branch.

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

Documentation: Clarify '--signoff' for git-commitAbhijit Bhopatkar Sun, 19 Oct 2008 04:19:23 +0000 (09:49 +0530)

Documentation: Clarify '--signoff' for git-commit

'--signoff' uses commiter name always to add the signoff line,
make it explicit in the documentation.

Signed-off-by: Abhijit Bhopatkar <bain@devslashzero.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

reset --hard/read-tree --reset -u: remove unmerged... Junio C Hamano Wed, 15 Oct 2008 23:00:06 +0000 (16:00 -0700)

reset --hard/read-tree --reset -u: remove unmerged new paths

When aborting a failed merge that has brought in a new path using "git
reset --hard" or "git read-tree --reset -u", we used to first forget about
the new path (via read_cache_unmerged) and then matched the working tree
to what is recorded in the index, thus ending up leaving the new path in
the work tree.

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

Hopefully the final draft release notes update before... Junio C Hamano Sat, 18 Oct 2008 15:26:39 +0000 (08:26 -0700)

Hopefully the final draft release notes update before 1.6.0.3

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

diff(1): clarify what "T"ypechange status meansJunio C Hamano Sat, 18 Oct 2008 15:20:51 +0000 (08:20 -0700)

diff(1): clarify what "T"ypechange status means

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

Merge branch 'db/maint-checkout-b' into maintJunio C Hamano Sat, 18 Oct 2008 15:18:11 +0000 (08:18 -0700)

Merge branch 'db/maint-checkout-b' into maint

* db/maint-checkout-b:
Check early that a new branch is new and valid

contrib: update packinfo.pl to not use dashed commandsDan McGee Sat, 18 Oct 2008 02:41:18 +0000 (21:41 -0500)

contrib: update packinfo.pl to not use dashed commands

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

force_object_loose: Fix memory leakBjörn Steinbrink Sat, 18 Oct 2008 00:37:31 +0000 (02:37 +0200)

force_object_loose: Fix memory leak

read_packed_sha1 expectes its caller to free the buffer it returns, which
force_object_loose didn't do.

This leak is eventually triggered by "git gc", when it is manually invoked
or there are too many packs around, making gc totally unusable when there
are lots of unreachable objects.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix "checkout --track -b newbranch" on detached HEADJunio C Hamano Fri, 17 Oct 2008 06:37:44 +0000 (23:37 -0700)

Fix "checkout --track -b newbranch" on detached HEAD

The test to make sure that checkout fails when --track was asked for and
we cannot set up tracking information in t7201 was wrong, and it turns out
that the implementation for that feature itself was buggy. This fixes it.

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

refactor handling of "other" files in ls-files and... Jeff King Thu, 16 Oct 2008 15:07:26 +0000 (11:07 -0400)

refactor handling of "other" files in ls-files and status

When the "git status" display code was originally converted
to C, we copied the code from ls-files to discover whether a
pathname returned by read_directory was an "other", or
untracked, file.

Much later, 5698454e updated the code in ls-files to handle
some new cases caused by gitlinks. This left the code in
wt-status.c broken: it would display submodule directories
as untracked directories. Nobody noticed until now, however,
because unless status.showUntrackedFiles was set to "all",
submodule directories were not actually reported by
read_directory. So the bug was only triggered in the
presence of a submodule _and_ this config option.

This patch pulls the ls-files code into a new function,
cache_name_is_other, and uses it in both places. This should
leave the ls-files functionality the same and fix the bug
in status.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: shell negation portability fixJeff King Mon, 13 Oct 2008 09:35:59 +0000 (05:35 -0400)

tests: shell negation portability fix

Commit 969c8775 introduced a test which uses the non-portable construct:

command1 && ! command2 | command3

which must be

command1 && ! (command2 | command3)

to work on bsd shells (this is another example of bbf08124, which fixed
several similar cases).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pull: allow "git pull origin $something:$current_branch... Junio C Hamano Tue, 14 Oct 2008 22:32:20 +0000 (15:32 -0700)

pull: allow "git pull origin $something:$current_branch" into an unborn branch

Some misguided documents floating on the Net suggest this sequence:

mkdir newdir && cd newdir
git init
git remote add origin $url
git pull origin master:master

"git pull" has known about misguided "pull" that lets the underlying fetch
update the current branch for a long time. It also has known about
"git pull origin master" into a branch yet to be born.

These two workarounds however were not aware of the existence of each
other and did not work well together. This fixes it.

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

t1301-shared-repo.sh: don't let a default ACL interfere... Matt McCutchen Fri, 17 Oct 2008 02:32:14 +0000 (22:32 -0400)

t1301-shared-repo.sh: don't let a default ACL interfere with the test

This test creates files with several different umasks and expects their
permissions to be initialized according to the umask, so a default ACL on the
trash directory (which overrides the umask for files created in that directory)
causes the test to fail. To avoid that, remove the default ACL if possible with
setfacl(1).

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-check-attr(1): add output and example sectionsJonas Fonseca Wed, 15 Oct 2008 07:10:58 +0000 (09:10 +0200)

git-check-attr(1): add output and example sections

Plumbing tools should document what output can be expected.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff-interface.c: strip newline (and cr) from line... Brandon Casey Wed, 1 Oct 2008 19:28:26 +0000 (14:28 -0500)

xdiff-interface.c: strip newline (and cr) from line before pattern matching

POSIX doth sayeth:

"In the regular expression processing described in IEEE Std 1003.1-2001,
the <newline> is regarded as an ordinary character and both a period and
a non-matching list can match one. ... Those utilities (like grep) that
do not allow <newline>s to match are responsible for eliminating any
<newline> from strings before matching against the RE."

Thus far git has not been removing the trailing newline from strings matched
against regular expression patterns. This has the effect that (quoting
Jonathan del Strother) "... a line containing just 'FUNCNAME' (terminated by
a newline) will be matched by the pattern '^(FUNCNAME.$)' but not
'^(FUNCNAME$)'", and more simply not '^FUNCNAME$'.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

t4018-diff-funcname: demonstrate end of line funcname... Brandon Casey Thu, 16 Oct 2008 00:58:50 +0000 (19:58 -0500)

t4018-diff-funcname: demonstrate end of line funcname matching flaw

Since the newline is not removed from lines before pattern matching, a
pattern cannot match to the end of the line using the '$' operator without
using an additional operator which will indirectly match the '\n' character.

Introduce a test which should pass, but which does not due to this flaw.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4018-diff-funcname: rework negated last expression... Brandon Casey Thu, 16 Oct 2008 00:58:49 +0000 (19:58 -0500)

t4018-diff-funcname: rework negated last expression test

This test used the non-zero exit status of 'git diff' to indicate that a
negated funcname pattern, when placed last, was correctly rejected.

The problem with this is that 'git diff' always returns non-zero if it
finds differences in the files it is comparing, and the files must
contain differences in order to trigger the funcname pattern codepath.

Instead of checking for non-zero exit status, make sure the expected
error message is printed.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>