gitweb.git
git-status -v: color diff output when color.ui is setMarkus Heidelberg Thu, 8 Jan 2009 18:53:05 +0000 (19:53 +0100)

git-status -v: color diff output when color.ui is set

When using "git status -v", the diff output wasn't colored, even though
color.ui was set. Only when setting color.diff it worked.

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

git-commit: color status output when color.ui is setMarkus Heidelberg Thu, 8 Jan 2009 18:53:01 +0000 (19:53 +0100)

git-commit: color status output when color.ui is set

When using "git commit" and there was nothing to commit (the editor
wasn't launched), the status output wasn't colored, even though color.ui
was set. Only when setting color.status it worked.

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

bash completions: Add the --patience optionJohannes Schindelin Thu, 1 Jan 2009 16:39:37 +0000 (17:39 +0100)

bash completions: Add the --patience option

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

Introduce the diff option '--patience'Johannes Schindelin Thu, 1 Jan 2009 16:39:17 +0000 (17:39 +0100)

Introduce the diff option '--patience'

This commit teaches Git to produce diff output using the patience diff
algorithm with the diff option '--patience'.

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

Implement the patience diff algorithmJohannes Schindelin Wed, 7 Jan 2009 17:04:09 +0000 (18:04 +0100)

Implement the patience diff algorithm

The patience diff algorithm produces slightly more intuitive output
than the classic Myers algorithm, as it does not try to minimize the
number of +/- lines first, but tries to preserve the lines that are
unique.

To this end, it first determines lines that are unique in both files,
then the maximal sequence which preserves the order (relative to both
files) is extracted.

Starting from this initial set of common lines, the rest of the lines
is handled recursively, with Myers' algorithm as a fallback when
the patience algorithm fails (due to no common unique lines).

This patch includes memory leak fixes by Pierre Habouzit.

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

diff --no-index -q: fix endless loopThomas Rast Wed, 7 Jan 2009 11:15:30 +0000 (12:15 +0100)

diff --no-index -q: fix endless loop

We forgot to move to the next argument when parsing -q, getting stuck
in an endless loop.

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

Merge branch 'mh/maint-sendmail-cc-doc'Junio C Hamano Wed, 7 Jan 2009 08:10:19 +0000 (00:10 -0800)

Merge branch 'mh/maint-sendmail-cc-doc'

* mh/maint-sendmail-cc-doc:
doc/git-send-email: mention sendemail.cc config variable

Merge branch 'rs/diff-ihc'Junio C Hamano Wed, 7 Jan 2009 08:10:14 +0000 (00:10 -0800)

Merge branch 'rs/diff-ihc'

* rs/diff-ihc:
diff: add option to show context between close hunks

Conflicts:
Documentation/diff-options.txt

Merge branch 'js/maint-merge-recursive-r-d-conflict'Junio C Hamano Wed, 7 Jan 2009 08:09:42 +0000 (00:09 -0800)

Merge branch 'js/maint-merge-recursive-r-d-conflict'

* js/maint-merge-recursive-r-d-conflict:
merge-recursive: mark rename/delete conflict as unmerged

Merge branch 'mk/gitweb-feature'Junio C Hamano Wed, 7 Jan 2009 08:09:33 +0000 (00:09 -0800)

Merge branch 'mk/gitweb-feature'

* mk/gitweb-feature:
gitweb: unify boolean feature subroutines

Merge branch 'cb/merge-recursive-fix'Junio C Hamano Wed, 7 Jan 2009 08:09:27 +0000 (00:09 -0800)

Merge branch 'cb/merge-recursive-fix'

* cb/merge-recursive-fix:
merge-recursive: do not clobber untracked working tree garbage
modify/delete conflict resolution overwrites untracked file

Merge branch 'kk/maint-http-push'Junio C Hamano Wed, 7 Jan 2009 08:09:14 +0000 (00:09 -0800)

Merge branch 'kk/maint-http-push'

* kk/maint-http-push:
http-push: support full URI in handle_remote_ls_ctx()

Merge branch 'mv/um-pdf'Junio C Hamano Wed, 7 Jan 2009 08:09:10 +0000 (00:09 -0800)

Merge branch 'mv/um-pdf'

* mv/um-pdf:
Add support for a pdf version of the user manual

Merge branch 'jn/gitweb-blame'Junio C Hamano Wed, 7 Jan 2009 08:09:06 +0000 (00:09 -0800)

Merge branch 'jn/gitweb-blame'

* jn/gitweb-blame:
gitweb: cache $parent_commit info in git_blame()
gitweb: A bit of code cleanup in git_blame()
gitweb: Move 'lineno' id from link to row element in git_blame

Merge branch 'wp/add-p-goto'Junio C Hamano Wed, 7 Jan 2009 08:09:00 +0000 (00:09 -0800)

Merge branch 'wp/add-p-goto'

* wp/add-p-goto:
Add 'g' command to go to a hunk
Add subroutine to display one-line summary of hunks

diff --no-index: test for pager after option parsingThomas Rast Tue, 6 Jan 2009 23:56:03 +0000 (00:56 +0100)

diff --no-index: test for pager after option parsing

We need to parse options before we can see if --exit-code was
provided.

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

diff: accept -- when using --no-indexThomas Rast Tue, 6 Jan 2009 18:53:32 +0000 (19:53 +0100)

diff: accept -- when using --no-index

Accept -- as an "end of options" marker even when using --no-index.
Previously, the -- triggered a "normal" index/tree diff and subsequently
failed because of the unrecognized (in that mode) --no-index.

Note that the second loop can treat '--' as a normal option, because
the preceding checks ensure it is the third-to-last argument.

While at it, fix the parsing of "-q" option in --no-index mode as well.

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

strbuf: instate cleanup rule in case of non-memory... René Scharfe Tue, 6 Jan 2009 20:41:14 +0000 (21:41 +0100)

strbuf: instate cleanup rule in case of non-memory errors

Make all strbuf functions that can fail free() their memory on error if
they have allocated it. They don't shrink buffers that have been grown,
though.

This allows for easier error handling, as callers only need to call
strbuf_release() if A) the command succeeded or B) if they would have had
to do so anyway because they added something to the strbuf themselves.

Bonus hunk: document strbuf_readlink.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 7 Jan 2009 06:13:41 +0000 (22:13 -0800)

Merge branch 'maint'

* maint:
README: tutorial.txt is now called gittutorial.txt

Merge branch 'maint-1.6.0' into maintJunio C Hamano Wed, 7 Jan 2009 06:12:35 +0000 (22:12 -0800)

Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
README: tutorial.txt is now called gittutorial.txt

Merge branch 'maint-1.5.6' into maint-1.6.0Junio C Hamano Wed, 7 Jan 2009 06:12:30 +0000 (22:12 -0800)

Merge branch 'maint-1.5.6' into maint-1.6.0

* maint-1.5.6:
README: tutorial.txt is now called gittutorial.txt

README: tutorial.txt is now called gittutorial.txtJoey Hess Wed, 7 Jan 2009 04:23:37 +0000 (23:23 -0500)

README: tutorial.txt is now called gittutorial.txt

Signed-off-by: Joey Hess <joey@gnu.kitenet.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

shortlog: handle multi-line subjects like log --pretty... René Scharfe Tue, 6 Jan 2009 20:41:06 +0000 (21:41 +0100)

shortlog: handle multi-line subjects like log --pretty=oneline et. al. do

The commit message parser of git shortlog used to treat only the first
non-empty line of the commit message as the subject. Other log commands
(e.g. --pretty=oneline) show the whole first paragraph instead (unwrapped
into a single line).

For consistency, this patch borrows format_subject() from pretty.c to
make shortlog do the same.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: don't use pathinfo for global actionsGiuseppe Bilotta Fri, 2 Jan 2009 11:34:40 +0000 (12:34 +0100)

gitweb: don't use pathinfo for global actions

With PATH_INFO urls, actions for the projects list (e.g. opml,
project_index) were being put in the URL right after the base. The
resulting URL is not properly parsed by gitweb itself, since it expects
a project name as first component of the URL.

Accepting global actions in use_pathinfo is not a very robust solution
due to possible present and future conflicts between project names and
global actions, therefore we just refuse to create PATH_INFO URLs when
the project is not defined.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure clobbers LDFLAGSPaul Jarc Mon, 5 Jan 2009 02:27:41 +0000 (21:27 -0500)

configure clobbers LDFLAGS

In a couple of tests, configure clobbers the LDFLAGS value set by the
caller. This patch fixes it.

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

Merge branch 'maint'Junio C Hamano Tue, 6 Jan 2009 00:10:52 +0000 (16:10 -0800)

Merge branch 'maint'

* maint:
Be consistent in switch usage for tar
Use capitalized names where appropriate
fast-export: print usage when no options specified

remove trailing LF in die() messagesAlexander Potashev Sun, 4 Jan 2009 18:38:41 +0000 (21:38 +0300)

remove trailing LF in die() messages

LF at the end of format strings given to die() is redundant because
die already adds one on its own.

Signed-off-by: Alexander Potashev <aspotashev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git.c: make autocorrected aliases workAdeodato Simó Sun, 4 Jan 2009 17:16:01 +0000 (18:16 +0100)

git.c: make autocorrected aliases work

help_unknown_cmd() is able to autocorrect a command to an alias, and not
only to internal or external commands. However, main() was not passing the
autocorrected command through handle_alias(), hence it failed if it was an
alias.

This commit makes the autocorrected command go through handle_alias(), once
handle_internal_command() and execv_dashed_external() have been tried. Since
this is done twice in main() now, moved that logic to a new run_argv()
function.

Also, print the same "Expansion of alias 'x' failed" message when the alias
was autocorrected, rather than a generic "Failed to run command 'x'".

Signed-off-by: Adeodato Simó <dato@net.com.org.es>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

unpack-trees: remove redundant path search in verify_absentClemens Buchacher Thu, 1 Jan 2009 20:54:33 +0000 (21:54 +0100)

unpack-trees: remove redundant path search in verify_absent

Since the only caller, verify_absent, relies on the fact that o->pos
points to the next index entry anyways, there is no need to recompute
its position.

Furthermore, if a nondirectory entry were found, this would return too
early, because there could still be an untracked directory in the way.
This is currently not a problem, because verify_absent is only called
if the index does not have this entry.

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

unpack-trees: fix path search bug in verify_absentClemens Buchacher Thu, 1 Jan 2009 20:54:32 +0000 (21:54 +0100)

unpack-trees: fix path search bug in verify_absent

Commit 0cf73755 (unpack-trees.c: assume submodules are clean during
check-out) changed an argument to verify_absent from 'path' to 'ce',
which is however shadowed by a local variable of the same name.

The bug triggers if verify_absent is used on a tree entry, for which
the index contains one or more subsequent directories of the same
length. The affected subdirectories are removed from the index. The
testcase included in this commit bisects to 55218834 (checkout: do not
lose staged removal), which reveals the bug in this case, but is
otherwise unrelated.

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

unpack-trees: handle failure in verify_absentClemens Buchacher Thu, 1 Jan 2009 20:54:31 +0000 (21:54 +0100)

unpack-trees: handle failure in verify_absent

Commit 203a2fe1 (Allow callers of unpack_trees() to handle failure)
changed the "die on error" behavior to "return failure code".
verify_absent did not handle errors returned by
verify_clean_subdirectory, however.

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

Be consistent in switch usage for tarHenrik Austad Mon, 5 Jan 2009 15:25:37 +0000 (16:25 +0100)

Be consistent in switch usage for tar

tar handles switches with and witout preceding '-', but the
documentation should be consistent nonetheless.

Signed-off-by: Henrik Austad <henrik@austad.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use capitalized names where appropriateHenrik Austad Mon, 5 Jan 2009 15:25:36 +0000 (16:25 +0100)

Use capitalized names where appropriate

The Linux kernel and Emacs are both spelled capitalized

Signed-off-by: Henrik Austad <henrik@austad.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-sh-setup: Fix scripts whose PWD is a symlink to... Marcel M. Cary Tue, 30 Dec 2008 15:10:24 +0000 (07:10 -0800)

git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X

On Mac OS X and possibly BSDs, /bin/pwd reads PWD from the environment if
available and shows the logical path by default rather than the physical
one.

Unset PWD before running /bin/pwd in both cd_to_toplevel and its test.

Still use the external /bin/pwd because in my Bash on Linux, the builtin
pwd prints the same result whether or not PWD is set.

Signed-off-by: Marcel M. Cary <marcel@oak.homeunix.org>
Tested-by: Wincent Colaiuta <win@wincent.com> (on Mac OS X 10.5.5)
Tested-by: Marcel Koeppen <git-dev@marzelpan.de> (on Mac OS X 10.5.6)
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: clarify which parameters are optional... Markus Heidelberg Thu, 1 Jan 2009 21:56:29 +0000 (22:56 +0100)

Documentation: clarify which parameters are optional to git-cherry

An earlier parameter is only optional when all of the later parameters are
omitted.

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

cvsserver: change generation of CVS author namesFabian Emmes Fri, 2 Jan 2009 15:40:14 +0000 (16:40 +0100)

cvsserver: change generation of CVS author names

CVS username is generated from local part email address.
We take the whole local part but restrict the character set to the
Portable Filename Character Set, which is used for Unix login names
according to Single Unix Specification v3.

This will obviously report different usernames from existing repositories
for commits with the local part of the author e-mail address that contains
characters outside the PFCS. Hopefully this won't break an old CVS
checkout from an earlier version of git-cvsserver, because the names are
always shown afresh to the CVS clients and not kept on the client side.

Signed-off-by: Fabian Emmes <fabian.emmes@rwth-aachen.de>
Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash: add '--merge' to 'git reset'SZEDER Gábor Mon, 29 Dec 2008 15:05:46 +0000 (16:05 +0100)

bash: add '--merge' to 'git reset'

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

show <tag>: reuse pp_user_info() instead of duplicating... Johannes Schindelin Fri, 2 Jan 2009 18:08:43 +0000 (19:08 +0100)

show <tag>: reuse pp_user_info() instead of duplicating code

We used to extract the tagger information "by hand" in "git show <tag>",
but the function pp_user_info() already does that. Even better:
it respects the commit_format and date_format specified by the user.

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

git add: do not add files from a submoduleJohannes Schindelin Fri, 2 Jan 2009 18:08:40 +0000 (19:08 +0100)

git add: do not add files from a submodule

It comes quite as a surprise to an unsuspecting Git user that calling
"git add submodule/file" (which is a mistake, alright) _removes_
the submodule in the index, and adds the file. Instead, complain loudly.

While at it, be nice when the user said "git add submodule/" which is
most likely the consequence of tab-completion, and stage the submodule,
instead of trying to add the contents of that directory.

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

bundle: allow rev-list options to exclude annotated... Johannes Schindelin Fri, 2 Jan 2009 18:08:46 +0000 (19:08 +0100)

bundle: allow rev-list options to exclude annotated tags

With options such as "--all --since=2.weeks.ago", annotated tags used to
be included, when they should have been excluded. The reason is that we
heavily abuse the revision walker to determine what needs to be included
or excluded. And the revision walker does not show tags at all (and
therefore never marks tags as uninteresting).

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

gitweb: use href() when generating URLs in OPMLGiuseppe Bilotta Fri, 2 Jan 2009 12:15:28 +0000 (13:15 +0100)

gitweb: use href() when generating URLs in OPML

Since the OPML project list view was hand-coding the RSS and HTML URLs,
it didn't respect global options such as use_pathinfo. Make it use
href() to ensure consistency with the rest of the gitweb setup.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bisect view: call gitk if Cygwin's SESSIONNAME variable... Johannes Schindelin Fri, 2 Jan 2009 18:08:00 +0000 (19:08 +0100)

bisect view: call gitk if Cygwin's SESSIONNAME variable is set

It seems that Cygwin sets the variable SESSIONNAME when an interactive
desktop session is running, and does not set it when you log in via ssh.

So we can use this variable to determine whether to run gitk or git log
in git bisect view.

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

fast-export: print usage when no options specifiedMiklos Vajna Sat, 3 Jan 2009 03:59:12 +0000 (04:59 +0100)

fast-export: print usage when no options specified

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

rebase -i: execute hook only after argument checkingThomas Rast Fri, 2 Jan 2009 22:28:26 +0000 (23:28 +0100)

rebase -i: execute hook only after argument checking

Previously, the pre-rebase-hook would be launched before we knew if
the <upstream> [<branch>] arguments were supplied.

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

cvsserver: add option to configure commit messageFabian Emmes Fri, 2 Jan 2009 15:40:13 +0000 (16:40 +0100)

cvsserver: add option to configure commit message

cvsserver annotates each commit message by "via git-CVS emulator". This is
made configurable via gitcvs.commitmsgannotation.

Signed-off-by: Fabian Emmes <fabian.emmes@rwth-aachen.de>
Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/maint-do-not-switch-to-non-commit'Junio C Hamano Sat, 3 Jan 2009 21:57:30 +0000 (13:57 -0800)

Merge branch 'jc/maint-do-not-switch-to-non-commit'

* jc/maint-do-not-switch-to-non-commit:
git checkout: do not allow switching to a tree-ish that is not a commit

Merge branch 'ap/maint-apply-modefix'Junio C Hamano Sat, 3 Jan 2009 21:57:10 +0000 (13:57 -0800)

Merge branch 'ap/maint-apply-modefix'

* ap/maint-apply-modefix:
builtin-apply: prevent non-explicit permission changes

git checkout: do not allow switching to a tree-ish... Junio C Hamano Sat, 3 Jan 2009 12:07:32 +0000 (04:07 -0800)

git checkout: do not allow switching to a tree-ish that is not a commit

"git checkout -b newbranch $commit^{tree}" mistakenly created a new branch
rooted at the current HEAD, because in that case, the two structure fields
used to see if the command was invoked without any argument (hence it
needs to default to checking out the HEAD) were populated incorrectly.

Upon seeing a command line argument that we took as a rev, we should store
that string in new.name, even if that does not name a commit. This will
correctly trigger the existing safety logic.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>

builtin-apply: prevent non-explicit permission changesJunio C Hamano Fri, 2 Jan 2009 10:55:37 +0000 (02:55 -0800)

builtin-apply: prevent non-explicit permission changes

A git patch that does not change the executable bit records the mode bits
on its "index" line. "git apply" used to interpret this mode exactly the
same way as it interprets the mode recorded on "new mode" line, as the
wish by the patch submitter to set the mode to the one recorded on the
line.

The reason the mode does not agree between the submitter and the receiver
in the first place is because there is _another_ commit that only appears
on one side but not the other since their histories diverged, and that
commit changes the mode. The patch has "index" line but not "new mode"
line because its change is about updating the contents without affecting
the mode. The application of such a patch is an explicit wish by the
submitter to only cherry-pick the commit that updates the contents without
cherry-picking the commit that modifies the mode. Viewed this way, the
current behaviour is problematic, even though the command does warn when
the mode of the path being patched does not match this mode, and a careful
user could detect this inconsistencies between the patch submitter and the
patch receiver.

This changes the semantics of the mode recorded on the "index" line;
instead of interpreting it as the submitter's wish to set the mode to the
recorded value, it merely informs what the mode submitter happened to
have, and the presense of the "index" line is taken as submitter's wish to
keep whatever the mode is on the receiving end.

This is based on the patch originally done by Alexander Potashev with a
minor fix; the tests are mine.

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

git wrapper: Make while loop more reader-friendlyJohannes Schindelin Fri, 2 Jan 2009 18:07:52 +0000 (19:07 +0100)

git wrapper: Make while loop more reader-friendly

It is not a good practice to prefer performance over readability in
something as performance uncritical as finding the trailing slash
of argv[0].

So avoid head-scratching by making the loop user-readable, and not
hyper-performance-optimized.

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

Git.pm: correctly handle directory name that evaluates... Philippe Bruhat (BooK) Mon, 29 Dec 2008 00:25:00 +0000 (01:25 +0100)

Git.pm: correctly handle directory name that evaluates to "false"

The repository constructor mistakenly rewrote a Directory parameter that
Perl happens to evaluate to false (e.g. "0") to ".".

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

Merge branch 'cb/mergetool'Junio C Hamano Thu, 1 Jan 2009 13:48:40 +0000 (05:48 -0800)

Merge branch 'cb/mergetool'

* cb/mergetool:
mergetool: Don't keep temporary merge files unless told to
mergetool: Add prompt to continue after failing to merge a file
Add -y/--no-prompt option to mergetool
Fix some tab/space inconsistencies in git-mergetool.sh

Merge branch 'maint'Junio C Hamano Thu, 1 Jan 2009 13:48:35 +0000 (05:48 -0800)

Merge branch 'maint'

* maint:
Documentation/git-tag.txt: minor typo and grammar fix

Documentation/git-tag.txt: minor typo and grammar fixjidanni@jidanni.org Sat, 27 Dec 2008 19:49:03 +0000 (03:49 +0800)

Documentation/git-tag.txt: minor typo and grammar fix

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

objects to be pruned immediately don't have to be loosenedNicolas Pitre Tue, 30 Dec 2008 19:45:11 +0000 (14:45 -0500)

objects to be pruned immediately don't have to be loosened

When there is no grace period before pruning unreferenced objects, it is
pointless to push those objects in their loose form just to delete them
right away.

Also be more explicit about the possibility of using "now" in the
gc.pruneexpire config variable (needed for the above behavior to
happen).

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

Document git-ls-tree --full-treeNanako Shiraishi Wed, 31 Dec 2008 10:00:50 +0000 (19:00 +0900)

Document git-ls-tree --full-tree

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

git-cherry: make <upstream> parameter optionalMarkus Heidelberg Mon, 29 Dec 2008 17:45:20 +0000 (18:45 +0100)

git-cherry: make <upstream> parameter optional

The upstream branch <upstream> now defaults to the first tracked
remote branch, which is set by the configuration variables
branch.<name>.remote and branch.<name>.merge of the current branch.

Without such a remote branch, the command "git cherry [-v]" fails with
usage output as before and an additional message.

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

builtin-shortlog.c: use string_list_append(), and don... Adeodato Simó Tue, 30 Dec 2008 21:01:44 +0000 (22:01 +0100)

builtin-shortlog.c: use string_list_append(), and don't strdup unnecessarily

Make insert_one_record() use string_list_append(), instead of duplicating
its code. Because of this, do not free the "util" member when clearing the
"onelines" string lists: with the new code path it is not initialized to
any value (was being initialized to NULL previously).

Also, avoid unnecessary strdup() calls when inserting names in log->list.
This list always has "strdup_strings" activated, hence strdup'ing namebuf is
unnecessary. This change also removes a latent memory leak in the old code.

NB: The duplicated code mentioned above predated the appearance of
string_list_append().

Signed-off-by: Adeodato Simó <dato@net.com.org.es>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-opt: migrate builtin-apply.Miklos Vajna Sat, 27 Dec 2008 23:03:57 +0000 (00:03 +0100)

parse-opt: migrate builtin-apply.

The only incompatible change is that the user how have to use '--'
before a patch file if it is named "--build-fake-ancestor=something".

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

Merge branch 'lt/reset-merge'Junio C Hamano Mon, 29 Dec 2008 09:21:45 +0000 (01:21 -0800)

Merge branch 'lt/reset-merge'

* lt/reset-merge:
Document "git-reset --merge"
Add 'merge' mode to 'git reset'

Merge branch 'np/auto-thread'Junio C Hamano Mon, 29 Dec 2008 09:21:33 +0000 (01:21 -0800)

Merge branch 'np/auto-thread'

* np/auto-thread:
Force t5302 to use a single thread
pack-objects: don't use too many threads with few objects
autodetect number of CPUs by default when using threads

Merge branch 'maint'Junio C Hamano Mon, 29 Dec 2008 09:18:34 +0000 (01:18 -0800)

Merge branch 'maint'

* maint:
Prepare for v1.6.1.1 maintenance release
Documentation/diff-options.txt: unify options
gitweb: Fix export check in git_get_projects_list

Conflicts:
RelNotes

Prepare for v1.6.1.1 maintenance releaseJunio C Hamano Mon, 29 Dec 2008 09:17:34 +0000 (01:17 -0800)

Prepare for v1.6.1.1 maintenance release

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

Documentation/diff-options.txt: unify optionsjidanni@jidanni.org Mon, 29 Dec 2008 07:03:17 +0000 (15:03 +0800)

Documentation/diff-options.txt: unify options

Instead of listing short option (e.g. "-U<n>") as a shorthand for its
longer counterpart (e.g. "--unified=<n>"), list the synonyms together. It
saves one indirection to find what the reader wants.

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

doc/git-send-email: mention sendemail.cc config variableMarkus Heidelberg Sun, 28 Dec 2008 23:37:25 +0000 (00:37 +0100)

doc/git-send-email: mention sendemail.cc config variable

This variable was added in 5f8b9fc (git-send-email: add a new
sendemail.cc configuration variable, 2008-04-27), but is not yet refered
to by the documentation.

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

diff: add option to show context between close hunksRené Scharfe Sun, 28 Dec 2008 18:45:32 +0000 (19:45 +0100)

diff: add option to show context between close hunks

Merge two hunks if there is only the specified number of otherwise unshown
context between them. For --inter-hunk-context=1, the resulting patch has
the same number of lines but shows uninterrupted context instead of a
context header line in between.

Patches generated with this option are easier to read but are also more
likely to conflict if the file to be patched contains other changes.

This patch keeps the default for this option at 0. It is intended to just
make the feature available in order to see its advantages and downsides.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix the building of gitman.info documentTeemu Likonen Mon, 29 Dec 2008 08:03:09 +0000 (10:03 +0200)

Fix the building of gitman.info document

"makeinfo" failed to generate gitman.info from gitman.texi input file
because the combined manual page file contains several nodes with the
same name (DESCRIPTION, OPTIONS, SEE ALSO etc.). An Info document should
contain unique node names.

This patch creates a simple (read: ugly) work-around by suppressing the
validation of the final Info file. Jumping to nodes in the Info document
still works but they are not very useful. Common man-page headings like
DESCRIPTION and OPTIONS appear in the Info node list and they point to
the man page where they appear first (that is git-add currently).

Also, this patch adds directory-entry information for Info document to
make the document appear in the top-level Info directory.

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix the building of user-manual.texi and gitman.texi... Teemu Likonen Mon, 29 Dec 2008 08:03:08 +0000 (10:03 +0200)

Fix the building of user-manual.texi and gitman.texi documents

Previously "docbook2x-texi" failed to generate user-manual.texi and
gitman.texi files from .xml input files because "iconv" stopped at
"illegal input sequence" error. This was due to some UTF-8 octets in the
input .xml files. This patch adds option --encoding=UTF-8 for
"docbook2x-texi" to allow the building of .texi files complete.

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Fix export check in git_get_projects_listDevin Doucette Sat, 27 Dec 2008 09:39:31 +0000 (02:39 -0700)

gitweb: Fix export check in git_get_projects_list

When $filter was empty, the path passed to check_export_ok would
contain an extra '/', which some implementations of export_auth_hook
are sensitive to.

It makes more sense to fix this here than to handle the special case
in each implementation of export_auth_hook.

Signed-off-by: Devin Doucette <devin@doucette.cc>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: grep cache entries if they are "assume unchanged"Nguyễn Thái Ngọc Duy Sat, 27 Dec 2008 08:21:03 +0000 (15:21 +0700)

grep: grep cache entries if they are "assume unchanged"

"Assume unchanged" bit means "please pretend that I have never touched
this file", so if user removes the file, we should not care.

This patch teaches "git grep" to use cache version in such
situations. External grep case has not been fixed yet. But given that
on the platform that CE_VALID bit may be used like Windows, external
grep is not available anyway, I would wait for people to raise their
hands before touching it.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: support --no-ext-grep to test builtin grepNguyễn Thái Ngọc Duy Sat, 27 Dec 2008 08:21:04 +0000 (15:21 +0700)

grep: support --no-ext-grep to test builtin grep

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sat, 27 Dec 2008 22:25:14 +0000 (14:25 -0800)

Merge branch 'maint'

* maint:
git-send-email.txt: move --format-patch paragraph to a proper location
git-shortlog.txt: improve documentation about .mailmap files
pretty: support multiline subjects with format:
pretty: factor out format_subject()
pretty: factor out skip_empty_lines()
merge-file: handle freopen() failure
daemon: cleanup: factor out xstrdup_tolower()
daemon: cleanup: replace loop with if
daemon: handle freopen() failure
describe: Avoid unnecessary warning when using --all

Start 1.6.2 cycleJunio C Hamano Sat, 27 Dec 2008 22:25:10 +0000 (14:25 -0800)

Start 1.6.2 cycle

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

Merge branch 'rs/maint-tformat-foldline' into maintJunio C Hamano Sat, 27 Dec 2008 22:22:37 +0000 (14:22 -0800)

Merge branch 'rs/maint-tformat-foldline' into maint

* rs/maint-tformat-foldline:
pretty: support multiline subjects with format:
pretty: factor out format_subject()
pretty: factor out skip_empty_lines()

Merge branch 'rs/maint-retval-fix' into maintJunio C Hamano Sat, 27 Dec 2008 22:21:24 +0000 (14:21 -0800)

Merge branch 'rs/maint-retval-fix' into maint

* rs/maint-retval-fix:
merge-file: handle freopen() failure
daemon: cleanup: factor out xstrdup_tolower()
daemon: cleanup: replace loop with if
daemon: handle freopen() failure

Merge branch 'sp/maint-describe-all-tag-warning' into... Junio C Hamano Sat, 27 Dec 2008 22:21:15 +0000 (14:21 -0800)

Merge branch 'sp/maint-describe-all-tag-warning' into maint

* sp/maint-describe-all-tag-warning:
describe: Avoid unnecessary warning when using --all

git-send-email.txt: move --format-patch paragraph to... Adeodato Simó Sat, 27 Dec 2008 08:50:30 +0000 (09:50 +0100)

git-send-email.txt: move --format-patch paragraph to a proper location

When introducing --format-patch, its documentation was accidentally inserted
in the middle of documentation for --validate.

Signed-off-by: Adeodato Simó <dato@net.com.org.es>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-shortlog.txt: improve documentation about .mailmap... Adeodato Simó Sat, 27 Dec 2008 18:23:30 +0000 (19:23 +0100)

git-shortlog.txt: improve documentation about .mailmap files

The description on .mailmap made it seem like they are only useful for
commits with a wrong address for an author, but they are about fixing the
real name. Explain this better in the text, and replace the existing
example with a new one that hopefully makes things clearer.

Signed-off-by: Adeodato Simó <dato@net.com.org.es>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pretty: support multiline subjects with format:René Scharfe Sat, 27 Dec 2008 00:49:21 +0000 (01:49 +0100)

pretty: support multiline subjects with format:

git log --pretty=format:%s (and tformat:) used to display the first
line of the subject, unlike the other --pretty options, which would
construct a subject line from all lines of the first paragraph of
the commit message.

For consistency and increased code reuse, change format: to do the
same as the other options.

Before:
$ git log --pretty=oneline v1.6.1 | md5sum
7c0896d2a94fc3315a0372b9b3373a8f -
$ git log --pretty=tformat:"%H %s" v1.6.1 | md5sum
298903b1c065002e15daa5329213c51f -

After:
$ git log --pretty=tformat:"%H %s" v1.6.1 | md5sum
7c0896d2a94fc3315a0372b9b3373a8f -
$ git log --pretty=oneline v1.6.1 | md5sum
7c0896d2a94fc3315a0372b9b3373a8f -

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pretty: factor out format_subject()René Scharfe Sat, 27 Dec 2008 00:39:35 +0000 (01:39 +0100)

pretty: factor out format_subject()

The next patch will use it.

In the version that was factored out, we can't rely on the len of the
struct strbuf to find out if a line separator needs to be added, as
it might already contain something. Add a guard variable ("first")
instead.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pretty: factor out skip_empty_lines()René Scharfe Sat, 27 Dec 2008 00:32:49 +0000 (01:32 +0100)

pretty: factor out skip_empty_lines()

The patch after the next one will use it.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-file: handle freopen() failureRené Scharfe Fri, 26 Dec 2008 10:17:04 +0000 (11:17 +0100)

merge-file: handle freopen() failure

Report the error if redirection of stderr to /dev/null failed.

This silences a compiler warning about ignoring the return value
of freopen() on Ubuntu 8.10.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

daemon: cleanup: factor out xstrdup_tolower()René Scharfe Fri, 26 Dec 2008 10:12:15 +0000 (11:12 +0100)

daemon: cleanup: factor out xstrdup_tolower()

Add xstrdup_tolower(), a helper to get a lower case copy of a
string, and use it in two cases.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

daemon: cleanup: replace loop with ifRené Scharfe Fri, 26 Dec 2008 10:01:57 +0000 (11:01 +0100)

daemon: cleanup: replace loop with if

Replace a loop around an enter_repo() call, which was used to retry
a single time with a different parameter in case the first call fails,
with two calls and an if. This is shorter and cleaner.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

daemon: handle freopen() failureRené Scharfe Fri, 26 Dec 2008 09:46:25 +0000 (10:46 +0100)

daemon: handle freopen() failure

Die if stderr couldn't be sent to /dev/null when operating in inetd
mode and report the error message from the OS.

This fixes a compiler warning about the return value of freopen()
being ignored on Ubuntu 8.10.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

describe: Avoid unnecessary warning when using --allShawn O. Pearce Fri, 26 Dec 2008 22:02:01 +0000 (14:02 -0800)

describe: Avoid unnecessary warning when using --all

In 212945d4 ("Teach git-describe to verify annotated tag names
before output") git-describe learned how to output a warning if
an annotated tag object was matched but its internal name doesn't
match the local ref name.

However, "git describe --all" causes the local ref name to be
prefixed with "tags/", so we need to skip over this prefix before
comparing the local ref name with the name recorded inside of the
tag object.

Patch-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

ls-tree: add --full-tree optionJunio C Hamano Fri, 26 Dec 2008 00:54:23 +0000 (16:54 -0800)

ls-tree: add --full-tree option

The established behaviour of "git ls-tree $tree_ish" run from a subdirectory
"sub/dir" in a work tree is to limit the output to the paths in the
subdirectory, and strip off the leading "sub/dir" from the output, since
3c5e846 (ls-tree: major rewrite to do pathspec, 2005-11-26).

This was a "usability" feature made back in the days when the line between
Porcelain and plumbing was blurry, and in retrospect, it probably was
misguided. The behaviour may be what the end user would expect when the
command is run interactively from a subdirectory, but it also means that a
scripted Porcelain that wants to use the command to list the full contents
of a tree object has to do cd_to_toplevel (and save the output from
"rev-parse --show-prefix" before doing so, so that it can be used as a
pathspec if it wants to limit its operation to the original subdirectory
in other commands).

This new option makes the command operate on the full tree object,
regardless of where in the work tree it is run from. It also implies the
behaviour that is triggered by the existing --full-name option.

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

merge-recursive: mark rename/delete conflict as unmergedJohannes Schindelin Mon, 22 Dec 2008 22:10:20 +0000 (23:10 +0100)

merge-recursive: mark rename/delete conflict as unmerged

When a file was renamed in one branch, but deleted in the other, one
should expect the index to contain an unmerged entry, namely the
target of the rename. Make it so.

Noticed by Constantine Plotnikov.

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

http-push: support full URI in handle_remote_ls_ctx()Kirill A. Korinskiy Tue, 23 Dec 2008 08:31:15 +0000 (11:31 +0300)

http-push: support full URI in handle_remote_ls_ctx()

The program calls remote_ls() to get list of files from the server over
HTTP; handle_remote_ls_ctx() is used to parse its response to populate
"struct remote_ls_ctx" that is returned from remote_ls().

The handle_remote_ls_ctx() function assumed that the server returns a
local path in href field, but RFC 4918 (14.7) demand of support full URI
(e.g. "http://localhost:8080/repo.git").

This resulted in push failure (e.g. git-http-push issues a PROPFIND
request to "/repo.git/alhost:8080/repo.git/refs/" to the server).

Signed-off-by: Kirill A. Korinskiy <catap@catap.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

GIT 1.6.1 v1.6.1Junio C Hamano Thu, 25 Dec 2008 03:41:08 +0000 (19:41 -0800)

GIT 1.6.1

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

Merge branch 'js/rebase-i-p'Junio C Hamano Wed, 24 Dec 2008 08:14:14 +0000 (00:14 -0800)

Merge branch 'js/rebase-i-p'

* js/rebase-i-p:
rebase -i -p: leave a --cc patch when a merge could not be redone
rebase -i -p: Fix --continue after a merge could not be redone
Show a failure of rebase -p if the merge had a conflict

rebase -i -p: leave a --cc patch when a merge could... Johannes Schindelin Mon, 22 Dec 2008 21:16:51 +0000 (22:16 +0100)

rebase -i -p: leave a --cc patch when a merge could not be redone

The result is easier to review this way, and the merge resolution has to be
done inside the work tree, not by adjusting "the patch" anyway.

t9129: skip the last three tests if UTF-8 locale is... Miklos Vajna Tue, 23 Dec 2008 01:09:24 +0000 (02:09 +0100)

t9129: skip the last three tests if UTF-8 locale is not available

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

GIT 1.6.1-rc4 v1.6.1-rc4Junio C Hamano Mon, 22 Dec 2008 03:20:21 +0000 (19:20 -0800)

GIT 1.6.1-rc4

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

Always show which directory is not a git repositoryRichard Hartmann Sun, 21 Dec 2008 23:17:32 +0000 (00:17 +0100)

Always show which directory is not a git repository

Unify all

fatal: Not a git repository

error messages so they include path information.

Signed-off-by: Richard Hartmann <richih@net.in.tum.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make help entries alphabeticalRichard Hartmann Sun, 21 Dec 2008 22:28:25 +0000 (23:28 +0100)

Make help entries alphabetical

Signed-off-by: Richard Hartmann <richih@net.in.tum.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 22 Dec 2008 02:35:54 +0000 (18:35 -0800)

Merge branch 'maint'

* maint:
doc/git-fsck: change the way for getting heads' SHA1s

git-revert documentation: refer to new HOWTO on reverti... Boyd Stephen Smith Jr Mon, 22 Dec 2008 00:26:03 +0000 (18:26 -0600)

git-revert documentation: refer to new HOWTO on reverting faulty merges

Signed-off-by: Boyd Stephen Smith Jr <bss@iguanasuicide.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-revert: record the parent against which a revert... Robin Rosenberg Sun, 21 Dec 2008 22:17:12 +0000 (14:17 -0800)

git-revert: record the parent against which a revert was made

As described in Documentation/howto/revert-a-faulty-merge.txt, re-merging
from a previously reverted a merge of a side branch may need a revert of
the revert beforehand. Record against which parent the revert was made in
the commit, so that later the user can figure out what went on.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano Mon, 22 Dec 2008 02:31:12 +0000 (18:31 -0800)

Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Force the focus to the main window on Windows
gitk: Allow unbalanced quotes/braces in commit headers
gitk: Update German translation
gitk: Mark forgotten strings (header sentence parts in color chooser) for translation
gitk: Ensure that "Reset branch" menu entry is enabled
gitk: Use check-buttons' -text property instead of separate labels
gitk: Map / to focus the search box
gitk: Fix bugs in blaming code