gitweb.git
Merge branch 'maint'Junio C Hamano Sat, 1 Dec 2007 00:21:33 +0000 (16:21 -0800)

Merge branch 'maint'

* maint:
Replace the word 'update-cache' by 'update-index' everywhere
cvsimport: fix usage of cvsimport.module
t7003-filter-branch: Fix test of a failing --msg-filter.
cvsimport: miscellaneous packed-ref fixes
cvsimport: use rev-parse to support packed refs
Add basic cvsimport tests

Fix a pathological case in git detecting proper renamesLinus Torvalds Fri, 30 Nov 2007 00:41:09 +0000 (16:41 -0800)

Fix a pathological case in git detecting proper renames

On Thu, 29 Nov 2007, Jeff King wrote:
>
> I think it will get worse, because you are simultaneously calculating
> all of the similarity scores bit by bit rather than doing a loop. Though
> perhaps you mean at the end you will end up with a list of src/dst pairs
> sorted by score, and you can loop over that.

Well, after thinking about this a bit, I think there's a solution that may
work well with the current thing too: instead of looping just *once* over
the list of rename pairs, loop twice - and simply refuse to do copies on
the first loop.

This trivial patch does that, and turns Kumar's test-case into a perfect
rename list.

It's not pretty, it's not smart, but it seems to work. There's something
to be said for keeping it simple and stupid.

And it should not be nearly as expensive as it may _look_. Yes, the loop
is "(i = 0; i < num_create * num_src; i++)", but the important part is
that the whole array is sorted by rename score, and we have a

if (mx[i].score < minimum_score)
break;

in it, so uthe loop actually would tend to terminate rather quickly.

Anyway, Kumar, the thing to take away from this is:

- git really doesn't even *care* about the whole "rename detection"
internally, and any commits you have done with renames are totally
independent of the heuristics we then use to *show* the renames.

- the rename detection really is for just two reasons: (a) keep humans
happy, and keep the diffs small and (b) help automatic merging across
renames. So getting renames right is certainly good, but it's more of a
"politeness" issue than a "correctness" issue, although the merge
portion of it does matter a lot sometimes.

- the important thing here is that you can commit your changes and not
worry about them being somehow "corrupted" by lack of rename detection,
even if you commit them with a version of git that doesn't do rename
detection the way you expected it. The rename detection is an
"after-the-fact" thing, not something that actually gets saved in the
repository, which is why we can change the heuristics _after_ seeing
examples, and the examples magically correct themselves!

- try out the two patches I've posted, and see if they work for you. They
pass the test-suite, and the output for your example commit looks sane,
but hey, if you have other test-cases, try them out.

Here's Kumar's pretty diffstat with both my patches:

Makefile | 6 +++---
board/{cds => freescale}/common/cadmus.c | 0
board/{cds => freescale}/common/cadmus.h | 0
board/{cds => freescale}/common/eeprom.c | 0
board/{cds => freescale}/common/eeprom.h | 0
board/{cds => freescale}/common/ft_board.c | 0
board/{cds => freescale}/common/via.c | 0
board/{cds => freescale}/common/via.h | 0
board/{cds => freescale}/mpc8541cds/Makefile | 0
board/{cds => freescale}/mpc8541cds/config.mk | 0
board/{cds => freescale}/mpc8541cds/init.S | 0
board/{cds => freescale}/mpc8541cds/mpc8541cds.c | 0
board/{cds => freescale}/mpc8541cds/u-boot.lds | 4 ++--
board/{cds => freescale}/mpc8548cds/Makefile | 0
board/{cds => freescale}/mpc8548cds/config.mk | 0
board/{cds => freescale}/mpc8548cds/init.S | 0
board/{cds => freescale}/mpc8548cds/mpc8548cds.c | 0
board/{cds => freescale}/mpc8548cds/u-boot.lds | 4 ++--
board/{cds => freescale}/mpc8555cds/Makefile | 0
board/{cds => freescale}/mpc8555cds/config.mk | 0
board/{cds => freescale}/mpc8555cds/init.S | 0
board/{cds => freescale}/mpc8555cds/mpc8555cds.c | 0
board/{cds => freescale}/mpc8555cds/u-boot.lds | 4 ++--
23 files changed, 9 insertions(+), 9 deletions(-)

and here it is before:

Makefile | 6 +-
board/cds/mpc8548cds/Makefile | 60 -----
board/cds/mpc8555cds/Makefile | 60 -----
board/cds/mpc8555cds/init.S | 255 --------------------
board/cds/mpc8555cds/u-boot.lds | 150 ------------
board/{cds => freescale}/common/cadmus.c | 0
board/{cds => freescale}/common/cadmus.h | 0
board/{cds => freescale}/common/eeprom.c | 0
board/{cds => freescale}/common/eeprom.h | 0
board/{cds => freescale}/common/ft_board.c | 0
board/{cds => freescale}/common/via.c | 0
board/{cds => freescale}/common/via.h | 0
board/{cds => freescale}/mpc8541cds/Makefile | 0
board/{cds => freescale}/mpc8541cds/config.mk | 0
board/{cds => freescale}/mpc8541cds/init.S | 0
board/{cds => freescale}/mpc8541cds/mpc8541cds.c | 0
board/{cds => freescale}/mpc8541cds/u-boot.lds | 4 +-
.../mpc8541cds => freescale/mpc8548cds}/Makefile | 0
board/{cds => freescale}/mpc8548cds/config.mk | 0
board/{cds => freescale}/mpc8548cds/init.S | 0
board/{cds => freescale}/mpc8548cds/mpc8548cds.c | 0
board/{cds => freescale}/mpc8548cds/u-boot.lds | 4 +-
.../mpc8541cds => freescale/mpc8555cds}/Makefile | 0
board/{cds => freescale}/mpc8555cds/config.mk | 0
.../mpc8541cds => freescale/mpc8555cds}/init.S | 0
board/{cds => freescale}/mpc8555cds/mpc8555cds.c | 0
.../mpc8541cds => freescale/mpc8555cds}/u-boot.lds | 4 +-
27 files changed, 9 insertions(+), 534 deletions(-)

so it certainly makes the diffs prettier.

Linus

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

Fix a pathological case in git detecting proper renamesLinus Torvalds Thu, 29 Nov 2007 21:30:13 +0000 (13:30 -0800)

Fix a pathological case in git detecting proper renames

Kumar Gala had a case in the u-boot archive with multiple renames of files
with identical contents, and git would turn those into multiple "copy"
operations of one of the sources, and just deleting the other sources.

This patch makes the git exact rename detection prefer to spread out the
renames over the multiple sources, rather than do multiple copies of one
source.

NOTE! The changes are a bit larger than required, because I also renamed
the variables named "one" and "two" to "target" and "source" respectively.
That makes the logic easier to follow, especially as the "one" was
illogically the target and not the soruce, for purely historical reasons
(this piece of code used to traverse over sources and targets in the wrong
order, and when we fixed that, we didn't fix the names back then. So I
fixed them now).

The important part of this change is just the trivial score calculations
for when files have identical contents:

/* Give higher scores to sources that haven't been used already */
score = !source->rename_used;
score += basename_same(source, target);

and when we have multiple choices we'll now pick the choice that gets the
best rename score, rather than only looking at whether the basename
matched.

It's worth noting a few gotchas:

- this scoring is currently only done for the "exact match" case.

In particular, in Kumar's example, even after this patch, the inexact
match case is still done as a copy+delete rather than as two renames:

delete mode 100644 board/cds/mpc8555cds/u-boot.lds
copy board/{cds => freescale}/mpc8541cds/u-boot.lds (97%)
rename board/{cds/mpc8541cds => freescale/mpc8555cds}/u-boot.lds (97%)

because apparently the "cds/mpc8541cds/u-boot.lds" copy looked
a bit more similar to both end results. That said, I *suspect* we just
have the exact same issue there - the similarity analysis just gave
identical (or at least very _close_ to identical) similarity points,
and we do not have any logic to prefer multiple renames over a
copy/delete there.

That is a separate patch.

- When you have identical contents and identical basenames, the actual
entry that is chosen is still picked fairly "at random" for the first
one (but the subsequent ones will prefer entries that haven't already
been used).

It's not actually really random, in that it actually depends on the
relative alphabetical order of the files (which in turn will have
impacted the order that the entries got hashed!), so it gives
consistent results that can be explained. But I wanted to point it out
as an issue for when anybody actually does cross-renames.

In Kumar's case the choice is the right one (and for a single normal
directory rename it should always be, since the relative alphabetical
sorting of the files will be identical), and we now get:

rename board/{cds => freescale}/mpc8541cds/init.S (100%)
rename board/{cds => freescale}/mpc8548cds/init.S (100%)

which is the "expected" answer. However, it might still be better to
change the pedantic "exact same basename" on/off choice into a more
graduated "how similar are the pathnames" scoring situation, in order
to be more likely to get the exact rename choice that people *expect*
to see, rather than other alternatives that may *technically* be
equally good, but are surprising to a human.

It's also unclear whether we should consider "basenames are equal" or
"have already used this as a source" to be more important. This gives them
equal weight, but I suspect we might want to just multiple the "basenames
are equal" weight by two, or something, to prefer equal basenames even if
that causes a copy/delete pair. I dunno.

Anyway, what I'm just saying in a really long-winded manner is that I
think this is right as-is, but it's not the complete solution, and it may
want some further tweaking in the future.

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

Replace the word 'update-cache' by 'update-index' every... Johannes Schindelin Fri, 30 Nov 2007 11:35:23 +0000 (11:35 +0000)

Replace the word 'update-cache' by 'update-index' everywhere

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cvsimport: fix usage of cvsimport.moduleJeff King Fri, 30 Nov 2007 22:22:12 +0000 (17:22 -0500)

cvsimport: fix usage of cvsimport.module

There were two problems:

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

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

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

receive-pack: allow deletion of corrupt refsJohannes Schindelin Thu, 29 Nov 2007 01:02:53 +0000 (01:02 +0000)

receive-pack: allow deletion of corrupt refs

Occasionally, in some setups (*cough* forks on repo.or.cz *cough*) some
refs go stale, e.g. when the forkee rebased and lost some objects needed
by the fork. The quick & dirty way to deal with those refs is to delete
them and push them again.

However, git-push first would first fetch the current commit name for the
ref, would receive a null sha1 since the ref does not point to a valid
object, then tell receive-pack that it should delete the ref with this
commit name. delete_ref() would be subsequently be called, and check that
resolve_ref() (which does _not_ check for validity of the object) returns
the same commit name. Which would fail.

The proper fix is to avoid corrupting repositories, but in the meantime
this is a good fix in any case.

Incidentally, some instances of "cd .." in the test cases were fixed, so
that subsequent test cases run in t/trash/ irrespective of the outcome of
the previous test cases.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/maint-cvsimport-fix' into maintJunio C Hamano Fri, 30 Nov 2007 22:22:54 +0000 (14:22 -0800)

Merge branch 'jk/maint-cvsimport-fix' into maint

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

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

t7003-filter-branch: Fix test of a failing --msg-filter.

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

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add config_int() method to the Git perl moduleJakub Narebski Fri, 23 Nov 2007 18:04:52 +0000 (19:04 +0100)

Add config_int() method to the Git perl module

Integer variables can have optional 'k', 'm' or 'g' suffix.
config_int() method will return simple decimal number, taking
care of those suffixes.

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

Error out when user doesn't have access permission... André Goddard Rosa Thu, 22 Nov 2007 22:22:23 +0000 (20:22 -0200)

Error out when user doesn't have access permission to the repository

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>

per-directory-exclude: lazily read .gitignore filesJunio C Hamano Thu, 29 Nov 2007 10:17:44 +0000 (02:17 -0800)

per-directory-exclude: lazily read .gitignore files

Operations that walk directories or trees, which potentially need to
consult the .gitignore files, used to always try to open the .gitignore
file every time they entered a new directory, even when they ended up
not needing to call excluded() function to see if a path in the
directory is ignored. This was done by push/pop exclude_per_directory()
functions that managed the data in a stack.

This changes the directory walking API to remove the need to call these
two functions. Instead, the directory walk data structure caches the
data used by excluded() function the last time, and lazily reuses it as
much as possible. Among the data the last check used, the ones from
deeper directories that the path we are checking is outside are
discarded, data from the common leading directories are reused, and then
the directories between the common directory and the directory the path
being checked is in are checked for .gitignore file. This is very
similar to the way gitattributes are handled.

This API change also fixes "ls-files -c -i", which called excluded()
without setting up the gitignore data via the old push/pop functions.

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

dir.c: minor clean-upJunio C Hamano Thu, 29 Nov 2007 09:11:46 +0000 (01:11 -0800)

dir.c: minor clean-up

Replace handcrafted reallocation with ALLOC_GROW().
Reindent "file_exists()" helper function.

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

Merge branch 'maint'Junio C Hamano Thu, 29 Nov 2007 01:06:57 +0000 (17:06 -0800)

Merge branch 'maint'

* maint:
scripts: do not get confused with HEAD in work tree
Improve description of git-branch -d and -D in man page.

scripts: do not get confused with HEAD in work treeJunio C Hamano Thu, 29 Nov 2007 00:15:04 +0000 (16:15 -0800)

scripts: do not get confused with HEAD in work tree

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

This patch would apply to maint.

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

bash completion: add diff optionsJohannes Schindelin Fri, 23 Nov 2007 01:11:35 +0000 (01:11 +0000)

bash completion: add diff options

I use "git diff" (the porcelain) really often, and am almost as often
annoyed that the completions do not know how to complete something simple
as --cached. Now they do.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git checkout's reflog: even when detaching the HEAD... Johannes Schindelin Fri, 23 Nov 2007 00:20:35 +0000 (00:20 +0000)

git checkout's reflog: even when detaching the HEAD, say from where

When checking out another ref, the reflogs already record from which
branch you switched. Do that also when switching to a detached HEAD.

While at it, record also when coming _from_ a detached HEAD.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_file.c: Fix size_t related printf format warningsSteffen Prohaska Wed, 21 Nov 2007 20:27:19 +0000 (21:27 +0100)

sha1_file.c: Fix size_t related printf format warnings

The old way of fixing warnings did not succeed on MinGW. MinGW
does not support C99 printf format strings for size_t [1]. But
gcc on MinGW issues warnings if C99 printf format is not used.
Hence, the old stragegy to avoid warnings fails.

[1] http://www.mingw.org/MinGWiki/index.php/C99

This commits passes arguments of type size_t through a tiny
helper functions that casts to the type expected by the format
string.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "t5516: test update of local refs on push"Jeff King Wed, 21 Nov 2007 07:19:34 +0000 (02:19 -0500)

Revert "t5516: test update of local refs on push"

This reverts commit 09fba7a59d38d1cafaf33eadaf1d409c4113b30c.

These tests are superseded by the ones in t5404 (added in
6fa92bf3 and 8736a848), which are more extensive and better
organized.

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

Improve description of git-branch -d and -D in man... Jan Hudec Sat, 17 Nov 2007 19:51:44 +0000 (20:51 +0100)

Improve description of git-branch -d and -D in man page.

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

Signed-off-by: Jan Hudec <bulb@ucw.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter-branch: fix dirty way to provide the helpers... Johannes Schindelin Wed, 28 Nov 2007 15:50:38 +0000 (15:50 +0000)

filter-branch: fix dirty way to provide the helpers to commit filters

The helper functions 'map' and 'skip_commit' were provided to commit
filters by sourcing filter-branch itself. This was done with a certain
environment variable set to indicate that only the functions should be
defined, and the script should return then.

This was really hacky, and it did not work all that well, since the
full path to git-filter-branch was not known at all times.

Avoid that by putting the functions into a variable, and eval'ing
that variable. The commit filter gets these functions by prepending
the variable to the specified commands.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cvsimport: miscellaneous packed-ref fixesJeff King Wed, 28 Nov 2007 18:56:28 +0000 (13:56 -0500)

cvsimport: miscellaneous packed-ref fixes

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

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

cvsimport: use rev-parse to support packed refsJeff King Wed, 28 Nov 2007 18:56:11 +0000 (13:56 -0500)

cvsimport: use rev-parse to support packed refs

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

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

Add basic cvsimport testsJeff King Wed, 28 Nov 2007 18:55:46 +0000 (13:55 -0500)

Add basic cvsimport tests

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

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

git-stash: do not get fooled with "color.diff = true"Pascal Obry Mon, 26 Nov 2007 22:04:28 +0000 (23:04 +0100)

git-stash: do not get fooled with "color.diff = true"

When colors are set to "true" on the repository, the git log output
will contain control characters to set/reset the colors, even when
the output is to a pipe. This makes list_stash() fail as the
downstream sed does not see what it is expecting.

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

Use is_absolute_path() in diff-lib.c, lockfile.c, setup... Steffen Prohaska Sun, 25 Nov 2007 22:29:03 +0000 (23:29 +0100)

Use is_absolute_path() in diff-lib.c, lockfile.c, setup.c, trace.c

Using the helper function to test for absolute paths makes porting easier.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix typo in draft 1.5.4 release notesWincent Colaiuta Mon, 26 Nov 2007 08:34:48 +0000 (09:34 +0100)

Fix typo in draft 1.5.4 release notes

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 26 Nov 2007 03:10:01 +0000 (19:10 -0800)

Merge branch 'maint'

* maint:
user-manual: recovering from corruption
user-manual: clarify language about "modifying" old commits
user-manual: failed push to public repository
user-manual: define "branch" and "working tree" at start
git-checkout: describe detached head correctly

Merge branch 'maint' of git://linux-nfs.org/~bfields... Junio C Hamano Mon, 26 Nov 2007 03:04:27 +0000 (19:04 -0800)

Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

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

user-manual: recovering from corruptionJ. Bruce Fields Sun, 4 Mar 2007 03:53:37 +0000 (22:53 -0500)

user-manual: recovering from corruption

Some instructions on dealing with corruption of the object database.

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

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>

Print the real filename that we failed to open.André Goddard Rosa Wed, 21 Nov 2007 20:59:14 +0000 (18:59 -0200)

Print the real filename that we failed to open.

When we fail to open a temporary file to be renamed to something else,
we reported the final filename, not the temporary file we failed to
open.

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

user-manual: clarify language about "modifying" old... J. Bruce Fields Mon, 26 Nov 2007 00:01:57 +0000 (19:01 -0500)

user-manual: clarify language about "modifying" old commits

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

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

revert/cherry-pick: do not mention the original refJunio C Hamano Sun, 25 Nov 2007 23:15:48 +0000 (15:15 -0800)

revert/cherry-pick: do not mention the original ref

When you cherry-pick or revert a commit, naming it with an annotated
tag, we added a comment, attempting to repeat what we got from the end
user, to the message.

But this was inconsistent. When we got "cherry-pick branch", we
recorded the object name (40-letter SHA-1) without saying anything like
"original was 'branch'". There was no need to. Also recent rewrite to
use parse-options made it impossible to parrot the original command line
without "unparsing".

This removes the code that implements the misguided "we dereferenced the
tag so record that in the commit message" behaviour.

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

user-manual: failed push to public repositoryJ. Bruce Fields Sun, 25 Nov 2007 22:54:19 +0000 (17:54 -0500)

user-manual: failed push to public repository

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

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

user-manual: define "branch" and "working tree" at... J. Bruce Fields Sun, 25 Nov 2007 18:53:37 +0000 (13:53 -0500)

user-manual: define "branch" and "working tree" at start

Some explanation here might help.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

git-checkout: describe detached head correctlyJunio C Hamano Sun, 25 Nov 2007 18:34:27 +0000 (10:34 -0800)

git-checkout: describe detached head correctly

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

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

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

Update draft release notes for 1.5.4Junio C Hamano Sun, 25 Nov 2007 01:42:36 +0000 (17:42 -0800)

Update draft release notes for 1.5.4

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

Merge branch 'maint'Junio C Hamano Sun, 25 Nov 2007 03:52:45 +0000 (19:52 -0800)

Merge branch 'maint'

* maint:
Fix rev-list when showing objects involving submodules
test format-patch -s: make sure MIME content type is shown as needed
format-patch -s: add MIME encoding header if signer's name requires so

Merge branch 'rv/maint-index-commit' into maintJunio C Hamano Sun, 25 Nov 2007 02:03:29 +0000 (18:03 -0800)

Merge branch 'rv/maint-index-commit' into maint

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

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

Merge branch 'lt/maint-rev-list-gitlink' into maint

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

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

Merge branch 'jc/maint-add-sync-stat' into maint

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

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

Merge branch 'jc/maint-format-patch-encoding' into maint

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

Merge branch 'bs/maint-t7005' into maintJunio C Hamano Sun, 25 Nov 2007 02:01:46 +0000 (18:01 -0800)

Merge branch 'bs/maint-t7005' into maint

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

Merge branch 'bs/maint-commit-options' into maintJunio C Hamano Sun, 25 Nov 2007 01:54:08 +0000 (17:54 -0800)

Merge branch 'bs/maint-commit-options' into maint

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

Deprecate peek-remoteJunio C Hamano Sun, 25 Nov 2007 01:41:18 +0000 (17:41 -0800)

Deprecate peek-remote

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

t4119: correct overeager war-on-whitespaceJunio C Hamano Sat, 24 Nov 2007 04:13:41 +0000 (20:13 -0800)

t4119: correct overeager war-on-whitespace

Earlier a6080a0a44d5ead84db3dabbbc80e82df838533d (War on whitespace)
dropped a necessary trailing whitespace from the test vector.

Merge branch 'jk/send-pack'Junio C Hamano Sun, 25 Nov 2007 00:45:37 +0000 (16:45 -0800)

Merge branch 'jk/send-pack'

* jk/send-pack: (24 commits)
send-pack: cluster ref status reporting
send-pack: fix "everything up-to-date" message
send-pack: tighten remote error reporting
make "find_ref_by_name" a public function
Fix warning about bitfield in struct ref
send-pack: assign remote errors to each ref
send-pack: check ref->status before updating tracking refs
send-pack: track errors for each ref
git-push: add documentation for the newly added --mirror mode
Add tests for git push'es mirror mode
Update the tracking references only if they were succesfully updated on remote
Add a test checking if send-pack updated local tracking branches correctly
git-push: plumb in --mirror mode
Teach send-pack a mirror mode
send-pack: segfault fix on forced push
Reteach builtin-ls-remote to understand remotes
send-pack: require --verbose to show update of tracking refs
receive-pack: don't mention successful updates
more terse push output
Build in ls-remote
...

Merge branch 'sb/clean'Junio C Hamano Sun, 25 Nov 2007 00:31:34 +0000 (16:31 -0800)

Merge branch 'sb/clean'

* sb/clean:
Teach git clean to use setup_standard_excludes()
git-clean: Fix error message if clean.requireForce is not set.
Make git-clean a builtin

Merge branch 'js/mingw-fallouts'Junio C Hamano Sun, 25 Nov 2007 00:31:25 +0000 (16:31 -0800)

Merge branch 'js/mingw-fallouts'

* js/mingw-fallouts:
fetch-pack: Prepare for a side-band demultiplexer in a thread.
rehabilitate some t5302 tests on 32-bit off_t machines
Allow ETC_GITCONFIG to be a relative path.
Introduce git_etc_gitconfig() that encapsulates access of ETC_GITCONFIG.
Allow a relative builtin template directory.
Close files opened by lock_file() before unlinking.
builtin run_command: do not exit with -1.
Move #include <sys/select.h> and <sys/ioctl.h> to git-compat-util.h.
Use is_absolute_path() in sha1_file.c.
Skip t3902-quoted.sh if the file system does not support funny names.
t5302-pack-index: Skip tests of 64-bit offsets if necessary.
t7501-commit.sh: Not all seds understand option -i
t5300-pack-object.sh: Split the big verify-pack test into smaller parts.

Merge branch 'mh/rebase-skip-hard'Junio C Hamano Sun, 25 Nov 2007 00:31:08 +0000 (16:31 -0800)

Merge branch 'mh/rebase-skip-hard'

* mh/rebase-skip-hard:
Do git reset --hard HEAD when using git rebase --skip

Merge branch 'cc/bisect'Junio C Hamano Sun, 25 Nov 2007 00:31:02 +0000 (16:31 -0800)

Merge branch 'cc/bisect'

* cc/bisect:
Bisect reset: do nothing when not bisecting.
Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we are bisecting.
Bisect visualize: use "for-each-ref" to list all good refs.
git-bisect: modernize branch shuffling hack
git-bisect: use update-ref to mark good/bad commits
git-bisect: war on "sed"
Bisect reset: remove bisect refs that may have been packed.

Merge branch 'maint'Junio C Hamano Fri, 23 Nov 2007 07:25:42 +0000 (23:25 -0800)

Merge branch 'maint'

* maint:
Fix sample pre-commit hook

Fix sample pre-commit hookJunio C Hamano Fri, 23 Nov 2007 07:25:19 +0000 (23:25 -0800)

Fix sample pre-commit hook

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

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

Addendum to "MaintNotes"Junio C Hamano Thu, 22 Nov 2007 11:08:39 +0000 (06:08 -0500)

Addendum to "MaintNotes"

Add "how to maintain git" document. Foreward by Jeff King.

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

Make test scripts executable.Junio C Hamano Fri, 23 Nov 2007 00:52:17 +0000 (16:52 -0800)

Make test scripts executable.

Merge branch 'maint'Junio C Hamano Fri, 23 Nov 2007 00:51:18 +0000 (16:51 -0800)

Merge branch 'maint'

* maint:
Make test scripts executable.
bundle create: keep symbolic refs' names instead of resolving them

Make test scripts executable.Junio C Hamano Fri, 23 Nov 2007 00:48:55 +0000 (16:48 -0800)

Make test scripts executable.

rebase -i: move help to end of todo fileJohannes Schindelin Thu, 22 Nov 2007 12:30:10 +0000 (12:30 +0000)

rebase -i: move help to end of todo file

[PATCH] rebase -i: move help to end of todo file

Many editors start in the first line, so the 9-line help text was an
annoyance. So move it to the end.

Requested by Junio.

While at it, add a hint how to abort the rebase.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bundle create: keep symbolic refs' names instead of... Johannes Schindelin Thu, 22 Nov 2007 12:24:59 +0000 (12:24 +0000)

bundle create: keep symbolic refs' names instead of resolving them

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

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

instead of

388afe7881b33102fada216dd07806728773c011 HEAD
388afe7881b33102fada216dd07806728773c011 refs/heads/master

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

Noticed by Santi Béjar.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-merge-ours: make it a builtin.Thomas Harning Thu, 22 Nov 2007 20:19:40 +0000 (15:19 -0500)

git-merge-ours: make it a builtin.

Except that this fixes a longstanding corner case bug by
tightening the way underlying diff-index command is run, it is
functionally equivalent to the scripted version.

Signed-off-by: Thomas Harning Jr <harningt@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Refactor patch_update_cmdWincent Colaiuta Wed, 21 Nov 2007 12:36:38 +0000 (13:36 +0100)

Refactor patch_update_cmd

Split patch_update_cmd into two functions, one to prompt the user for
a path to patch and another to do the actual work given that file path.
This lays the groundwork for a future commit which will teach
git-add--interactive to accept a path parameter and jump directly to
the patch subcommand for that path, bypassing the interactive prompt.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Authenticate only once in git-send-emailWincent Colaiuta Wed, 21 Nov 2007 12:35:05 +0000 (13:35 +0100)

Authenticate only once in git-send-email

When using git-send-email with SMTP authentication sending a patch series
would redundantly authenticate multiple times, once for each patch. In
the worst case, this would actually prevent the series from being sent
because the server would reply with a "5.5.0 Already Authenticated"
status code which would derail the process.

This commit teaches git-send-email to authenticate once and only once at
the beginning of the series.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.bogomips.org/git-svnJunio C Hamano Thu, 22 Nov 2007 08:34:49 +0000 (00:34 -0800)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
git-svn: allow `info' command to work offline
git-svn: info --url [path]
git-svn info: implement info command
git-svn: extract reusable code into utility functions
t9106: fix a race condition that caused svn to miss modifications

Fix "quote" misconversion for rewrite diff output.Junio C Hamano Thu, 22 Nov 2007 07:06:44 +0000 (23:06 -0800)

Fix "quote" misconversion for rewrite diff output.

663af3422a648e87945e4d8c0cc3e13671f2bbde (Full rework of
quote_c_style and write_name_quoted.) mistakenly used puts()
when writing out a fixed string when it did not want to add a
terminating LF.

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

git-svn: allow `info' command to work offlineEric Wong Thu, 22 Nov 2007 02:20:57 +0000 (18:20 -0800)

git-svn: allow `info' command to work offline

Cache the repository root whenever we connect to the repository.
This will allow us to notice URL changes if the user changes the
URL in .git/config, too.

If the repository is no longer accessible, or if `git svn info'
is the first and only command run; then '(offline)' will be
displayed for "Repository Root:" in the output.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

git-svn: info --url [path]David D. Kilzer Wed, 21 Nov 2007 19:57:19 +0000 (11:57 -0800)

git-svn: info --url [path]

Return the svn URL for the given path, or return the svn
repository URL if no path is given.

Added 18 tests to t/t9119-git-svn-info.sh.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn info: implement info commandDavid D. Kilzer Wed, 21 Nov 2007 19:57:18 +0000 (11:57 -0800)

git-svn info: implement info command

Implement "git-svn info" for files and directories based on the
"svn info" command. Note that the -r/--revision argument is not
supported yet.

Added 18 tests in t/t9119-git-svn-info.sh.

[ew: small fix to work without arguments on all working directories]

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: extract reusable code into utility functionsDavid D. Kilzer Wed, 21 Nov 2007 06:43:17 +0000 (22:43 -0800)

git-svn: extract reusable code into utility functions

Extacted canonicalize_path() in the main package.

Created new Git::SVN::Util package with an md5sum() function. A
new package was created so that Digest::MD5 did not have to be
loaded in the main package. Replaced code in the SVN::Git::Editor
and SVN::Git::Fetcher packages with calls to md5sum().

Extracted the format_svn_date(), parse_git_date() and
set_local_timezone() functions within the Git::SVN::Log package.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

t9106: fix a race condition that caused svn to miss... Eric Wong Wed, 21 Nov 2007 08:57:33 +0000 (00:57 -0800)

t9106: fix a race condition that caused svn to miss modifications

carbonated beverage noticed this test was occasionally failing.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Merge git://repo.or.cz/git-guiJunio C Hamano Wed, 21 Nov 2007 08:00:56 +0000 (00:00 -0800)

Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui: (96 commits)
git-gui 0.9.0
git-gui: Bind Meta-T for "Stage To Commit" menu action
git-gui: Allow users to set font weights to bold
git-gui: Update Japanese strings (part 2)
git-gui: Update Japanese strings
Updated russian translation of git-gui
po2msg: actually output statistics
po2msg: ignore untranslated messages
po2msg: ignore entries marked with "fuzzy"
git-gui: Protect against bad translation strings
git-gui: Make sure we get errors from git-update-index
More updates and corrections to the russian translation of git-gui
Updated Russian translation.
git-gui: Update German translation
git-gui: Add more terms to glossary.
git-gui: Paper bag fix the global config parsing
git-gui: Honor a config.mak in git-gui's top level
git-gui: Collapse $env(HOME) to ~/ in recent repositories on Windows
git-gui: Support cloning Cygwin based work-dirs
git-gui: Use proper Windows shortcuts instead of bat files
...

git-p4: Fix typo in --detect-labelsShun Kei Leung Wed, 21 Nov 2007 03:01:19 +0000 (11:01 +0800)

git-p4: Fix typo in --detect-labels

Signed-off-by: Kevin Leung <kevinlsk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-pack: cluster ref status reportingJeff King Tue, 20 Nov 2007 11:18:01 +0000 (06:18 -0500)

send-pack: cluster ref status reporting

Instead of intermingling success and failure, we now print:

1. all uptodate refs (if args.verbose is enabled)
2. successfully pushed refs
3. failed refs

with the assumption that the user is most likely to see the
ones at the end, and therefore we order them from "least
interesting" to "most interesting."

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

avoid "defined but not used" warning for fetch_objs_via... Jeff King Sun, 18 Nov 2007 08:17:23 +0000 (03:17 -0500)

avoid "defined but not used" warning for fetch_objs_via_walker

Because this function is static and used only by the
http-walker, when NO_CURL is defined, gcc emits a "defined
but not used" warning.

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

git-gui 0.9.0 gitgui-0.9.0Shawn O. Pearce Wed, 21 Nov 2007 07:10:03 +0000 (02:10 -0500)

git-gui 0.9.0

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'maint'Junio C Hamano Wed, 21 Nov 2007 07:00:07 +0000 (23:00 -0800)

Merge branch 'maint'

* maint:
send-email: add transfer encoding header with content-type
Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.
config: clarify compression defaults
config: correct core.loosecompression documentation

send-email: add transfer encoding header with content... Jeff King Tue, 20 Nov 2007 12:54:04 +0000 (07:54 -0500)

send-email: add transfer encoding header with content-type

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

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

git-compat-util.h: auto-adjust to compiler support... Junio C Hamano Tue, 20 Nov 2007 20:08:06 +0000 (12:08 -0800)

git-compat-util.h: auto-adjust to compiler support of FLEX_ARRAY a bit better

When declaring a structure with a flexible array member, instead
of defaulting to the c99 syntax for non-gnu compilers (which
burned people with older compilers), default to the traditional
and more portable "member[1]; /* more */" syntax.

At the same time, other c99 compilers should be able to take
advantage of the modern syntax to flexible array members without
being gcc. Check __STDC_VERSION__ for that.

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

Flush progress message buffer in display().Johannes Sixt Mon, 19 Nov 2007 19:48:58 +0000 (20:48 +0100)

Flush progress message buffer in display().

This will make progress display from pack-objects (invoked via
upload-pack) more responsive on platforms with an implementation
of stdio whose stderr is line buffered.

The standard error stream is defined to be merely "not fully
buffered"; this is different from "unbuffered". If the
implementation of the stdio library chooses to make it line
buffered, progress reports that end with CR but do not contain
LF will accumulate in the stdio buffer before written out. A
fflush() after each progress display gives a nice continuous
progress.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

autoconf: Add tests for memmem, strtoumax and mkdtemp... Jakub Narebski Mon, 19 Nov 2007 18:47:05 +0000 (19:47 +0100)

autoconf: Add tests for memmem, strtoumax and mkdtemp functions

Update configure.ac (and config.mak.in) to keep up with git
development by adding tests for memmem (NO_MEMMEM), strtoumax
(NO_STRTOUMAX) and mkdtemp (NO_MKDTEMP) functions.

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

gitweb: Put project README in div.readme, fix its paddingJakub Narebski Mon, 19 Nov 2007 13:16:12 +0000 (14:16 +0100)

gitweb: Put project README in div.readme, fix its padding

Put (optional) projects README on "summary" page in <div> element
using "readme" class. This allow to style it using CSS.

Add padding to project's README to make it line out with the rest
of the page.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>

gitweb: Style all tables using CSSJakub Narebski Mon, 19 Nov 2007 13:16:11 +0000 (14:16 +0100)

gitweb: Style all tables using CSS

Remove all cellspacing="0" attributes from tables in gitweb,
replacing it by CSS rule. Add CSS classes for all tables.

While at it, change class(es) of table for commit message and commit
authorship search from "grep" to "commit_search"; similarly,
"grep_search" class is now used for table with results of grep (files)
search.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>

send-email: Don't add To: recipients to the Cc: headerAsk Bjørn Hansen Mon, 19 Nov 2007 11:00:26 +0000 (03:00 -0800)

send-email: Don't add To: recipients to the Cc: header

Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Bisect reset: do nothing when not bisecting.Christian Couder Tue, 20 Nov 2007 05:39:53 +0000 (06:39 +0100)

Bisect reset: do nothing when not bisecting.

Before this patch, using "git bisect reset" when not bisecting
did a "git checkout master" for no good reason.

This also happened using "git bisect replay" when not bisecting
because "bisect_replay" starts by calling "bisect_reset".

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

Doc fix for git-reflog: mention @{...} syntax, and... Matthieu Moy Mon, 19 Nov 2007 18:25:11 +0000 (19:25 +0100)

Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.

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

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

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config: clarify compression defaultsBrian Downing Mon, 19 Nov 2007 16:58:51 +0000 (10:58 -0600)

config: clarify compression defaults

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

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

Signed-off-by: Brian Downing <bdowning@lavos.net>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config: correct core.loosecompression documentationBrian Downing Mon, 19 Nov 2007 16:58:50 +0000 (10:58 -0600)

config: correct core.loosecompression documentation

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

Signed-off-by: Brian Downing <bdowning@lavos.net>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitview: import only one of gtksourceview and gtksource... Anton Gyllenberg Mon, 19 Nov 2007 10:37:16 +0000 (12:37 +0200)

gitview: import only one of gtksourceview and gtksourceview2

Importing both gtksourceview and gtksourceview2 will make python segfault
on my system (ubuntu 7.10). Change so that gtksourceview is only imported
if importing gtksourceview2 fails. This should be safe as gtksourceview
is only used if gtksourceview2 is not available.

Signed-off-by: Anton Gyllenberg <anton@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-send-email: show all headers when sending mailDavid D. Kilzer Mon, 19 Nov 2007 04:14:55 +0000 (20:14 -0800)

git-send-email: show all headers when sending mail

As a git newbie, it was confusing to set an In-Reply-To header but then
not see it printed when the git-send-email command was run.

This patch prints all headers that would be sent to sendmail or an SMTP
server instead of only printing From, Subject, Cc, To. It also removes
the now-extraneous Date header after the "Log says" line.

Added test to t/t9001-send-email.sh.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 19 Nov 2007 08:19:15 +0000 (00:19 -0800)

Merge branch 'maint'

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

Further clarify clean.requireForce changesWincent Colaiuta Mon, 19 Nov 2007 08:06:31 +0000 (09:06 +0100)

Further clarify clean.requireForce changes

Mention the -f switch in the release notes for clean.requireForce to avoid
possible misunderstandings.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' of git://linux-nfs.org/~bfields... Junio C Hamano Mon, 19 Nov 2007 07:56:01 +0000 (23:56 -0800)

Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

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

Teach git clean to use setup_standard_excludes()Shawn Bohrer Thu, 15 Nov 2007 05:00:54 +0000 (23:00 -0600)

Teach git clean to use setup_standard_excludes()

Signed-off-by: Shawn Bohrer <shawn.bohrer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-clean: Fix error message if clean.requireForce... Junio C Hamano Tue, 13 Nov 2007 05:13:05 +0000 (21:13 -0800)

git-clean: Fix error message if clean.requireForce is not set.

It was distracting to see this error message:

clean.requireForce set and -n or -f not given; refusing to clean

even though clean.requireForce was not set at all. This patch distinguishes
the cases and gives a different message depending on whether the
configuration variable is not set or set to true.

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

Make git-clean a builtinShawn Bohrer Mon, 12 Nov 2007 01:48:47 +0000 (19:48 -0600)

Make git-clean a builtin

This replaces git-clean.sh with builtin-clean.c, and moves
git-clean.sh to the examples.

This also introduces a change in behavior when removing directories
explicitly specified as a path. For example currently:

1. When dir has only untracked files, these two behave differently:

$ git clean -n dir
$ git clean -n dir/

the former says "Would not remove dir/", while the latter would say
"Would remove dir/untracked" for all paths under it, but not the
directory itself.

With -d, the former would stop refusing, however since the user
explicitly asked to remove the directory the -d is no longer required.

2. When there are more parameters:

$ git clean -n dir foo
$ git clean -n dir/ foo

both cases refuse to remove dir/ unless -d is specified. Once again
since both cases requested to remove dir the -d is no longer required.

Thanks to Johannes Schindelin for the conversion to using the
parse-options API.

Signed-off-by: Shawn Bohrer <shawn.bohrer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: Fix references to deprecated commandsJ. Bruce Fields Mon, 19 Nov 2007 01:50:57 +0000 (20:50 -0500)

Documentation: Fix references to deprecated commands

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

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we... Christian Couder Sun, 18 Nov 2007 15:34:03 +0000 (16:34 +0100)

Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we are bisecting.

Previously we tested if the "$GIT_DIR/refs/bisect" directory
existed, to check if we were bisecting.

Now with packed refs, it is simpler to check if the file
"$GIT_DIR/BISECT_NAMES" exists, as it is already created when
starting bisection and removed when reseting bisection.

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

Update draft release notes for 1.5.4Junio C Hamano Mon, 19 Nov 2007 00:24:14 +0000 (16:24 -0800)

Update draft release notes for 1.5.4

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

user-manual: mention "..." in "Generating diffs", etc.J. Bruce Fields Mon, 19 Nov 2007 00:18:27 +0000 (19:18 -0500)

user-manual: mention "..." in "Generating diffs", etc.

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

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

Merge branch 'lt/rev-list-gitlink'Junio C Hamano Mon, 19 Nov 2007 00:16:37 +0000 (16:16 -0800)

Merge branch 'lt/rev-list-gitlink'

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

Merge branch 'ds/checkout-upper'Junio C Hamano Mon, 19 Nov 2007 00:04:17 +0000 (16:04 -0800)

Merge branch 'ds/checkout-upper'

* ds/checkout-upper:
git-checkout: Test for relative path use.
git-checkout: Support relative paths containing "..".

Merge branch 'sh/p4'Junio C Hamano Mon, 19 Nov 2007 00:03:58 +0000 (16:03 -0800)

Merge branch 'sh/p4'

* sh/p4:
git-p4: Fix direct import from perforce after fetching changes through git from origin