Code

git.git
16 years agoAdd "--show-all" revision walker flag for debugging
Linus Torvalds [Sat, 9 Feb 2008 22:02:07 +0000 (14:02 -0800)]
Add "--show-all" revision walker flag for debugging

It's really not very easy to visualize the commit walker, because - on
purpose - it obvously doesn't show the uninteresting commits!

This adds a "--show-all" flag to the revision walker, which will make
it show uninteresting commits too, and they'll have a '^' in front of
them (it also fixes a logic error for !verbose_header for boundary
commits - we should show the '-' even if left_right isn't shown).

A separate patch to gitk to teach it the new '^' was sent
to paulus.  With the change in place, it actually is interesting
even for the cases that git doesn't have any problems with, ie
for the kernel you can do:

gitk -d --show-all v2.6.24..

and you see just how far down it has to parse things to see it all. The
use of "-d" is a good idea, since the date-ordered toposort is much better
at showing why it goes deep down (ie the date of some of those commits
after 2.6.24 is much older, because they were merged from trees that
weren't rebased).

So I think this is a useful feature even for non-debugging - just to
visualize what git does internally more.

When it actually breaks out due to the "everybody_uninteresting()"
case, it adds the uninteresting commits (both the one it's looking at
now, and the list of pending ones) to the list

This way, we really list *all* the commits we've looked at.

Because we now end up listing commits we may not even have been parsed
at all "show_log" and "show_commit" need to protect against commits
that don't have a commit buffer entry.

That second part is debatable just how it should work. Maybe we shouldn't
show such entries at all (with this patch those entries do get shown, they
just don't get any message shown with them). But I think this is a useful
case.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Wed, 13 Feb 2008 22:33:19 +0000 (14:33 -0800)]
Merge branch 'maint'

* maint:
  config: add test cases for empty value and no value config variables.
  cvsimport: have default merge regex also match beginning of commit message
  git clone -s documentation: force a new paragraph for the NOTE
  status: suggest "git rm --cached" to unstage for initial commit
  Protect get_author_ident_from_commit() from filenames in work tree
  upload-pack: Initialize the exec-path.
  bisect: use verbatim commit subject in the bisect log
  git-cvsimport.txt: fix '-M' description.
  Revert "pack-objects: only throw away data during memory pressure"

16 years agoconfig: add test cases for empty value and no value config variables.
Christian Couder [Thu, 7 Feb 2008 05:23:46 +0000 (06:23 +0100)]
config: add test cases for empty value and no value config variables.

The tests in 't1300-repo-config.sh' did not check what happens when
an empty value like the following is used in the config file:

[emptyvalue]
variable =

Also it was not checked that a variable with no value like the
following:

[novalue]
variable

gives a boolean "true" value, while an ampty value gives a boolean
"false" value.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocvsimport: have default merge regex also match beginning of commit message
Gerrit Pape [Thu, 7 Feb 2008 09:36:10 +0000 (09:36 +0000)]
cvsimport: have default merge regex also match beginning of commit message

The default value of @mergerx uses \W, which matches a non-word
character; this means that commit messages like "Merging FOO" are not
matched by default; using \b, which matches a word boundary, instead of
\W fixes that.

This change was suggested by Frédéric Brière through
 http://bugs.debian.org/463468

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit clone -s documentation: force a new paragraph for the NOTE
Miklos Vajna [Tue, 12 Feb 2008 00:12:57 +0000 (01:12 +0100)]
git clone -s documentation: force a new paragraph for the NOTE

It should be loud and clear.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agostatus: suggest "git rm --cached" to unstage for initial commit
Jeff King [Tue, 12 Feb 2008 05:45:18 +0000 (00:45 -0500)]
status: suggest "git rm --cached" to unstage for initial commit

It makes no sense to suggest "git reset HEAD" since we have
no HEAD commit. This actually used to work but regressed in
f26a0012.

wt_status_print_cached_header was updated to take the whole
wt_status struct rather than just the reference field.
Previously the various code paths were sometimes sending in
s->reference and sometimes sending in NULL, making the
decision on whether this was an initial commit before we
even got to this function. Now we must check the initial
flag here.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoProtect get_author_ident_from_commit() from filenames in work tree
Junio C Hamano [Wed, 13 Feb 2008 21:13:21 +0000 (13:13 -0800)]
Protect get_author_ident_from_commit() from filenames in work tree

We used to use "cat-file commit $commit" to extract the original
author information from existing commit, but an earlier commit
5ac2715 (Consistent message encoding while reusing log from an
existing commit) changed it to use "git show -s $commit".  If
you have a file in your work tree that can be interpreted as a
valid object name (e.g. "HEAD"), this conversion will not work.

Disambiguate by marking the end of revision parameter on the
comand line with an explicit "--" to fix this.

This breakage is most visible with rebase when a file called
"HEAD" exists in the worktree.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoupload-pack: Initialize the exec-path.
Johannes Sixt [Tue, 12 Feb 2008 11:28:01 +0000 (12:28 +0100)]
upload-pack: Initialize the exec-path.

Since git-upload-pack has to spawn git-pack-objects, it has to make sure
that the latter can be found in the PATH. Without this patch an attempt
to clone or pull via ssh from a server fails if the git tools are not in
the standard PATH on the server even though git clone or git pull were
invoked with --upload-pack=/path/to/git-upload-pack.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobisect: use verbatim commit subject in the bisect log
Johannes Schindelin [Tue, 12 Feb 2008 19:50:57 +0000 (19:50 +0000)]
bisect: use verbatim commit subject in the bisect log

Due to a typo, the commit subject was shell expanded in the bisect log.
That is, if you had some shell pattern in the commit subject, bisect
would happily put all matching file names into the log.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Tested-by: Frans Pop <elendil@planet.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-cvsimport.txt: fix '-M' description.
Sergei Organov [Wed, 13 Feb 2008 14:31:17 +0000 (17:31 +0300)]
git-cvsimport.txt: fix '-M' description.

Fix '-M' description. Old one reads as if the user can somehow "see"
the default regex when using -M along with -m.

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Wed, 13 Feb 2008 19:04:58 +0000 (11:04 -0800)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: Automatically spell check commit messages as the user types
  git-gui: support Git Gui.app under OS X 10.5
  git-gui: Update German translation.
  git-gui: (i18n) Fix a bunch of still untranslated strings.

16 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Wed, 13 Feb 2008 19:03:49 +0000 (11:03 -0800)]
Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
  [PATCH] gitk: learn --show-all output
  [PATCH] gitk: properly deal with tag names containing / (slash)
  [PATCH] gitk: Add checkbutton to ignore space changes
  [PATCH] gitk: Fix "Key bindings" message

16 years ago[PATCH] gitk: learn --show-all output
Linus Torvalds [Sat, 9 Feb 2008 22:02:07 +0000 (14:02 -0800)]
[PATCH] gitk: learn --show-all output

It's really not very easy to visualize the commit walker,
because - on purpose - it obvously doesn't show the
uninteresting commits!

We will soon add a "--show-all" flag to the revision walker,
which will make it show uninteresting commits too, and they'll
have a '^' in front of them.

This is to update 'gitk' to show those negative commits in gray
to futureproof it.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agoRevert "pack-objects: only throw away data during memory pressure"
Junio C Hamano [Wed, 13 Feb 2008 07:39:03 +0000 (23:39 -0800)]
Revert "pack-objects: only throw away data during memory pressure"

This reverts commit 9c2174350cc0ae0f6bad126e15fe1f9f044117ab.

Nico analyzed and found out that this does not really help, and
I agree with it.

By the time this gets into action and data is actively thrown
away, performance simply goes down the drain due to the data
constantly being reloaded over and over and over and over and
over and over again, to the point of virtually making no
relative progress at all.  The previous behavior of enforcing
the memory limit by dynamically shrinking the window size at
least had the effect of allowing some kind of progress, even if
the end result wouldn't be optimal.

And that's the whole point behind this memory limiting feature:
allowing some progress to be made when resources are too limited
to let the repack go unbounded.

16 years agoFix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR
Johan Herland [Mon, 11 Feb 2008 23:43:41 +0000 (00:43 +0100)]
Fix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR

When using the '-w $cvsdir' option to cvsexportcommit, it will chdir into
$cvsdir before executing several other git commands. If $GIT_DIR is set to
a relative path (e.g. '.'), the git commands executed by cvsexportcommit
will naturally fail.

Therefore, ensure that $GIT_DIR is absolute before the chdir to $cvsdir.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR
Johan Herland [Wed, 13 Feb 2008 03:11:22 +0000 (04:11 +0100)]
Add testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR

The testcase verifies that 'git cvsexportcommit' functions correctly when
the '-w' option is used, and GIT_DIR is set to a relative path (e.g. '.').

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-gui: Automatically spell check commit messages as the user types
Shawn O. Pearce [Thu, 7 Feb 2008 07:35:25 +0000 (02:35 -0500)]
git-gui: Automatically spell check commit messages as the user types

Many user friendly tools like word processors, email editors and web
browsers allow users to spell check the message they are writing
as they type it, making it easy to identify a common misspelling
of a word and correct it on the fly.

We now open a bi-directional pipe to Aspell and feed the message
text the user is editing off to the program about once every 300
milliseconds.  This is frequent enough that the user sees the results
almost immediately, but is not so frequent as to cause significant
additional load on the system.  If the user has modified the message
text during the last 300 milliseconds we delay until the next period,
ensuring that we avoid flooding the Aspell process with a lot of
text while the user is actively typing their message.

We wait to send the current message buffer to Aspell until the user
is at a word boundary, thus ensuring that we are not likely to ask
for misspelled word detection on a word that the user is actively
typing, as most words are misspelled when only partially typed,
even if the user has thus far typed it correctly.

Misspelled words are highlighted in red and are given an underline,
causing the word to stand out from the others in the buffer.  This is
a very common user interface idiom for displaying misspelled words,
but differs from one platform to the next in slight variations.
For example the Mac OS X system prefers using a dashed red underline,
leaving the word in the original text color.  Unfortunately the
control that Tk gives us over text display is not powerful enough
to handle such formatting so we have to work with the least common
denominator.

The top suggestions for a misspelling are saved in an array and
offered to the user when they right-click (or on the Mac ctrl-click)
a misspelled word.  Selecting an entry from this menu will replace
the misspelling with the correction shown.  Replacement is integrated
with the undo/redo stack so undoing a replacement will restore the
misspelled original text.

If Aspell could not be started during git-gui launch we silently eat
the error and run without spell checking support.  This way users
who do not have Aspell in their $PATH can continue to use git-gui,
although they will not get the advanced spelling functionality.

If Aspell started successfully the version line and language are
shown in git-gui's about box, below the Tcl/Tk versions.  This way
the user can verify the Aspell function has been activated.

If Aspell crashes while we are running we inform the user with an
error dialog and then disable Aspell entirely for the rest of this
git-gui session.  This prevents us from fork-bombing the system
with Aspell instances that always crash when presented with the
current message text, should there be a bug in either Aspell or in
git-gui's output to it.

We escape all input lines with ^, as recommended by the Aspell manual
page, as this allows Aspell to properly ignore any input line that is
otherwise looking like a command (e.g. ! to enable terse output).  By
using this escape however we need to correct all word offsets by -1 as
Aspell is apparently considering the ^ escape to be part of the line's
character count, but our Tk text widget obviously does not.

Available dictionaries are offered in the Options dialog, allowing
the user to select the language they want to spellcheck commit
messages with for the current repository, as well as the global
user setting that all repositories inherit.

Special thanks to Adam Flott for suggesting connecting git-gui
to Aspell for the purpose of spell checking the commit message,
and to Wincent Colaiuta for the idea to wait for a word boundary
before passing the message over for checking.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint'
Shawn O. Pearce [Tue, 12 Feb 2008 07:35:03 +0000 (02:35 -0500)]
Merge branch 'maint'

* maint:
  git-gui: support Git Gui.app under OS X 10.5

16 years agogit-gui: support Git Gui.app under OS X 10.5
Jay Soffian [Tue, 12 Feb 2008 02:33:52 +0000 (21:33 -0500)]
git-gui: support Git Gui.app under OS X 10.5

The Tk Framework moved its location in 10.5 compared to 10.4

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Tested-by: Seth Falcon <seth@userprimary.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years ago.mailmap: adjust to a recent patch application glitch.
Junio C Hamano [Tue, 12 Feb 2008 07:14:53 +0000 (23:14 -0800)]
.mailmap: adjust to a recent patch application glitch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate the main documentation (stale notes section)
Junio C Hamano [Tue, 12 Feb 2008 03:21:23 +0000 (19:21 -0800)]
Update the main documentation (stale notes section)

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'db/no-separate-ls-remote-connection' (early part)
Junio C Hamano [Tue, 12 Feb 2008 00:47:07 +0000 (16:47 -0800)]
Merge branch 'db/no-separate-ls-remote-connection' (early part)

* 'db/no-separate-ls-remote-connection' (early part):
  Fix "git clone" for git:// protocol
  Reduce the number of connects when fetching

16 years agoMerge branch 'mw/send-email'
Junio C Hamano [Tue, 12 Feb 2008 00:46:36 +0000 (16:46 -0800)]
Merge branch 'mw/send-email'

* mw/send-email:
  git-send-email: Better handling of EOF
  git-send-email: SIG{TERM,INT} handlers
  git-send-email: ssh/login style password requests

16 years agoMerge branch 'db/send-email-omit-cc'
Junio C Hamano [Tue, 12 Feb 2008 00:46:30 +0000 (16:46 -0800)]
Merge branch 'db/send-email-omit-cc'

* db/send-email-omit-cc:
  git-send-email: Generalize auto-cc recipient mechanism.

16 years agoMerge branch 'jc/error-message-in-cherry-pick'
Junio C Hamano [Tue, 12 Feb 2008 00:46:27 +0000 (16:46 -0800)]
Merge branch 'jc/error-message-in-cherry-pick'

* jc/error-message-in-cherry-pick:
  Make error messages from cherry-pick/revert more sensible

16 years agoMerge branch 'lt/in-core-index'
Junio C Hamano [Tue, 12 Feb 2008 00:46:20 +0000 (16:46 -0800)]
Merge branch 'lt/in-core-index'

* lt/in-core-index:
  lazy index hashing
  Create pathname-based hash-table lookup into index
  read-cache.c: introduce is_racy_timestamp() helper
  read-cache.c: fix a couple more CE_REMOVE conversion
  Also use unpack_trees() in do_diff_cache()
  Make run_diff_index() use unpack_trees(), not read_tree()
  Avoid running lstat(2) on the same cache entry.
  index: be careful when handling long names
  Make on-disk index representation separate from in-core one

16 years agoMerge branch 'ph/describe-match'
Junio C Hamano [Tue, 12 Feb 2008 00:35:41 +0000 (16:35 -0800)]
Merge branch 'ph/describe-match'

* ph/describe-match:
  git-name-rev: add a --(no-)undefined option.
  git-describe: Add a --match option to limit considered tags.

16 years ago[PATCH] gitk: properly deal with tag names containing / (slash)
Gerrit Pape [Mon, 11 Feb 2008 10:57:40 +0000 (10:57 +0000)]
[PATCH] gitk: properly deal with tag names containing / (slash)

When creating a tag through gitk, and the tag name includes a slash (or
slashes), gitk errors out in a popup window.  This patch makes gitk use
'git tag' to create the tag instead of modifying files in refs/tags/,
which fixes the issue; if 'git tag' throws an error, gitk pops up with
the error message.

The problem was reported by Frédéric Brière through
 http://bugs.debian.org/464104

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[PATCH] gitk: Add checkbutton to ignore space changes
Steffen Prohaska [Thu, 17 Jan 2008 22:42:55 +0000 (23:42 +0100)]
[PATCH] gitk: Add checkbutton to ignore space changes

Ignoring space changes can be helpful.  For example, a commit
claims to only reformat source code and you quickly want to
verify if this claim is true.  Or a commit accidentally changes
code formatting and you want to focus on the real changes.

In such cases a button to toggle of whitespace changes would be
quite handy.  You could quickly toggle between seeing and
ignoring whitespace changes.

This commit adds such a checkbutton right above the diff view.

However, in general it is a good thing to see whitespace changes
and therefore the state of the checkbutton is not saved. For
example, space changes might happen unintentionally.  But they are
real changes yielding different sha1s for the blobs involved.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[PATCH] gitk: Fix "Key bindings" message
Michele Ballabio [Tue, 15 Jan 2008 22:31:49 +0000 (23:31 +0100)]
[PATCH] gitk: Fix "Key bindings" message

The "Key bindings" message under the "Help" menu was too long
and could not be parsed by the translation engine.

Fix both issues by translating one line at a time.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years agogit-blame.el: show the when, who and what in the minibuffer.
Junichi Uekawa [Mon, 11 Feb 2008 15:00:07 +0000 (00:00 +0900)]
git-blame.el: show the when, who and what in the minibuffer.

Change the default operation to show 'when (day the commit was made),
who (who made the commit), what (what the commit log was)' in the
minibuffer instead of SHA1 and title of the commit log.

Since the user may prefer other displaying options, it is made as a
user-configurable option.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDefine the project whitespace policy
Junio C Hamano [Mon, 11 Feb 2008 03:34:34 +0000 (19:34 -0800)]
Define the project whitespace policy

This establishes what the "bad" whitespaces are for this
project.

The rules are:

 - Unless otherwise specified, indent with SP that could be
   replaced with HT are not "bad".  But SP before HT in the
   indent is "bad", and trailing whitespaces are "bad".

 - For C source files, initial indent by SP that can be replaced
   with HT is also "bad".

 - Test scripts in t/ and test vectors in its subdirectories can
   contain anything, so we make it unrestricted for now.

Anything "bad" will be shown in WHITESPACE error indicator in
diff output, and "apply --whitespace=warn" will warn about it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd `git svn blame' command
Tim Stoakes [Sun, 10 Feb 2008 04:51:08 +0000 (15:21 +1030)]
Add `git svn blame' command

This command is identical to `git blame', but it shows SVN revision
numbers instead of git commit hashes.

[ew: support "^initial commit" and minor formatting fixes]

Signed-off-by: Tim Stoakes <tim@stoakes.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Mon, 11 Feb 2008 21:23:06 +0000 (13:23 -0800)]
Merge branch 'maint'

* maint: (35 commits)
  config.c: guard config parser from value=NULL
  builtin-log.c: guard config parser from value=NULL
  imap-send.c: guard config parser from value=NULL
  wt-status.c: guard config parser from value=NULL
  setup.c: guard config parser from value=NULL
  remote.c: guard config parser from value=NULL
  merge-recursive.c: guard config parser from value=NULL
  http.c: guard config parser from value=NULL
  help.c: guard config parser from value=NULL
  git.c: guard config parser from value=NULL
  diff.c: guard config parser from value=NULL
  convert.c: guard config parser from value=NULL
  connect.c: guard config parser from value=NULL
  builtin-tag.c: guard config parser from value=NULL
  builtin-show-branch.c: guard config parser from value=NULL
  builtin-reflog.c: guard config parser from value=NULL
  builtin-log.c: guard config parser from value=NULL
  builtin-config.c: guard config parser from value=NULL
  builtin-commit.c: guard config parser from value=NULL
  builtin-branch.c: guard config parser from value=NULL
  ...

16 years agoconfig.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 21:10:27 +0000 (13:10 -0800)]
config.c: guard config parser from value=NULL

user.{name,email}, core.{pager,editor,excludesfile,whitespace} and
i18n.{commit,logoutput}encoding all expect string values.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-log.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 21:09:16 +0000 (13:09 -0800)]
builtin-log.c: guard config parser from value=NULL

format.suffix expects a string value.  format.numbered is bool plus "auto"

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoimap-send.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 20:04:00 +0000 (12:04 -0800)]
imap-send.c: guard config parser from value=NULL

None of the configuration variables this expects is boolean.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agowt-status.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 19:00:57 +0000 (11:00 -0800)]
wt-status.c: guard config parser from value=NULL

status.color.* and color.status.* expect a string value

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agosetup.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 19:00:32 +0000 (11:00 -0800)]
setup.c: guard config parser from value=NULL

core.worktree expects a string value

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoremote.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 19:00:10 +0000 (11:00 -0800)]
remote.c: guard config parser from value=NULL

branch.*.{remote,merge} expect a string value

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomerge-recursive.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:59:17 +0000 (10:59 -0800)]
merge-recursive.c: guard config parser from value=NULL

merge.default, merge.*.{name,driver} expect a string value

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agohttp.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:57:22 +0000 (10:57 -0800)]
http.c: guard config parser from value=NULL

http.sslcert and friends expect a string value

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agohelp.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:56:26 +0000 (10:56 -0800)]
help.c: guard config parser from value=NULL

help.format configuration expects a string value

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:56:06 +0000 (10:56 -0800)]
git.c: guard config parser from value=NULL

alias.* configuration expects a string value

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:53:56 +0000 (10:53 -0800)]
diff.c: guard config parser from value=NULL

diff.external, diff.*.command, diff.color.*, color.diff.* and
diff.*.funcname configuration variables expect a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconvert.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:53:36 +0000 (10:53 -0800)]
convert.c: guard config parser from value=NULL

filter.*.smudge and filter.*.clean configuration variables expect a
string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconnect.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:52:15 +0000 (10:52 -0800)]
connect.c: guard config parser from value=NULL

core.gitproxy configuration expects a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-tag.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:51:31 +0000 (10:51 -0800)]
builtin-tag.c: guard config parser from value=NULL

user.signingkey configuration expects a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-show-branch.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:51:03 +0000 (10:51 -0800)]
builtin-show-branch.c: guard config parser from value=NULL

showbranch.default configuration expects a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-reflog.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:50:06 +0000 (10:50 -0800)]
builtin-reflog.c: guard config parser from value=NULL

gc.reflogexpire and gc.reflogexpireunreachable configuration expect
 a string value suitable for calling approxidate() with.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-log.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:48:55 +0000 (10:48 -0800)]
builtin-log.c: guard config parser from value=NULL

format.subjectprefix configuration expects a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-config.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:48:12 +0000 (10:48 -0800)]
builtin-config.c: guard config parser from value=NULL

color configuration variables expect a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-commit.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:46:39 +0000 (10:46 -0800)]
builtin-commit.c: guard config parser from value=NULL

commit.template configuration expects a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-branch.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:45:50 +0000 (10:45 -0800)]
builtin-branch.c: guard config parser from value=NULL

color.branch.* configuration variables expect a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-apply.c: guard config parser from value=NULL
Junio C Hamano [Mon, 11 Feb 2008 18:44:49 +0000 (10:44 -0800)]
builtin-apply.c: guard config parser from value=NULL

apply.whitespace configuration expects a string value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd config_error_nonbool() helper function
Junio C Hamano [Mon, 11 Feb 2008 18:41:18 +0000 (10:41 -0800)]
Add config_error_nonbool() helper function

This is used to report misconfigured configuration file that does not
give any value to a non-boolean variable, e.g.

[section]
var

It is perfectly fine to say it if the section.var is a boolean (it means
true), but if a variable expects a string value it should be flagged as
a configuration error.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-gc.c: guard config parser from value=NULL
Miklos Vajna [Fri, 8 Feb 2008 14:26:18 +0000 (15:26 +0100)]
builtin-gc.c: guard config parser from value=NULL

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoarchive-tar.c: guard config parser from value=NULL
Junio C Hamano [Sat, 9 Feb 2008 04:38:22 +0000 (20:38 -0800)]
archive-tar.c: guard config parser from value=NULL

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoWork around curl-gnutls not liking to be reinitialized
Mike Hommey [Sat, 9 Feb 2008 09:41:36 +0000 (10:41 +0100)]
Work around curl-gnutls not liking to be reinitialized

curl versions 7.16.3 to 7.18.0 included had a regression in which https
requests following curl_global_cleanup/init sequence would fail with ASN1
parser errors with curl-gnutls. Such sequences happen in some cases such
as git fetch.

We work around this by removing the http_init and http_cleanup calls from
get_refs_via_curl, replacing them with a transport->data initialization
with the http_walker (which does http_init).

While the http_walker is not currently used in get_refs_via_curl, http
and walker code refactor will make it use it.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoman pages are littered with .ft C and others
Jonas Fonseca [Mon, 4 Feb 2008 22:01:20 +0000 (23:01 +0100)]
man pages are littered with .ft C and others

Jakub Narebski <jnareb@gmail.com> wrote Sun, Feb 03, 2008:
> Junio C Hamano wrote:
> > Jakub Narebski <jnareb@gmail.com> writes:
> >
> > [From] http://thread.gmane.org/gmane.comp.version-control.git/53457/focus=53458
> Julian Phillips:
> > Are you using docbook xsl 1.72?  There are known problems building the
> > manpages with that version.  1.71 works, and 1.73 should work when it get
> > released.

I was able to solve this problem with this patch, which adds a XSL file
used specifically for DOCBOOK_XSL_172=YesPlease and where dots and
backslashes are escaped properly so they won't be substituted to the
wrong thing further down the "DocBook XSL pipeline". Doing the escaping
in the existing callout.xsl breaks v1.70.1. Hopefully v1.73 will end
this part of the manpage nightmare.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd a BuildRequires for gettext in the spec file.
James Bowes [Mon, 4 Feb 2008 13:13:07 +0000 (08:13 -0500)]
Add a BuildRequires for gettext in the spec file.

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agopack-objects: only throw away data during memory pressure
Martin Koegler [Mon, 11 Feb 2008 07:26:25 +0000 (08:26 +0100)]
pack-objects: only throw away data during memory pressure

If pack-objects hit the memory limit, it deletes objects from the delta
window.

This patch make it only delete the data, which is recomputed, if needed again.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-commit: remove .git/SQUASH_MSG upon successful commit
Gerrit Pape [Fri, 8 Feb 2008 09:53:58 +0000 (09:53 +0000)]
builtin-commit: remove .git/SQUASH_MSG upon successful commit

After doing a merge --squash, and commit afterwards, the commit message
template SQUASH_MSG in the git directory is not removed, which means that
the content of SQUASH_MSG is used as default commit message for all
subsequent commits.  So have git commit remove the file SQUASH_MSG from
the git directory upon a successful commit.

The problem was discovered by Frédéric Brière, reported through
 http://bugs.debian.org/464656

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake git prune remove temporary packs that look like write failures
David Steven Tweed [Thu, 7 Feb 2008 02:55:14 +0000 (02:55 +0000)]
Make git prune remove temporary packs that look like write failures

Write errors when repacking (eg, due to out-of-space conditions)
can leave temporary packs (and possibly other files beginning
with "tmp_") lying around which no existing
codepath removes and which aren't obvious to the casual user.
These can also be multi-megabyte files wasting noticeable space.
Unfortunately there's no way to definitely tell in builtin-prune
that a tmp_ file is not being used by a concurrent process,
such as a fetch. However, it is documented that pruning should
only be done on a quiet repository and --expire is honoured
(using code from Johannes Schindelin, along with a test case
he wrote) so that its safety is the same as that of loose
object pruning.

Since they might be signs of a problem (unlike orphaned loose
objects) the names of any removed files are printed.

Signed-off-by: David Tweed (david.tweed@gmail.com)
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase -i: accept -m as advertised in the man page
Uwe Kleine-K\e,Av\e(Bnig [Mon, 11 Feb 2008 13:45:26 +0000 (14:45 +0100)]
rebase -i: accept -m as advertised in the man page

Signed-off-by: Uwe Kleine-K\e,Av\e(Bnig <Uwe.Kleine-Koenig@digi.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocument that the default of branch.autosetupmerge is true
Johannes Schindelin [Mon, 11 Feb 2008 11:27:20 +0000 (11:27 +0000)]
Document that the default of branch.autosetupmerge is true

In 34a3e69 (git-branch: default to --track) the default was changed to
true, to help new git users.  But yours truly forgot to update the
documentation.  This fixes it.

Noticed by Kalle Olavi Niemitalo.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobisect: allow starting with a detached HEAD
Johannes Schindelin [Sun, 10 Feb 2008 13:59:50 +0000 (13:59 +0000)]
bisect: allow starting with a detached HEAD

Instead of insisting on a symbolic ref, bisect now accepts detached
HEADs, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-pull documentation: fix markup
Junio C Hamano [Mon, 11 Feb 2008 19:22:01 +0000 (11:22 -0800)]
git-pull documentation: fix markup

A note paragraph was mistakenly made into an indented monospace display.
Noticed by Miklos Vajna.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconfig: Fix --unset for continuation lines
Frank Lichtenheld [Mon, 11 Feb 2008 00:23:03 +0000 (01:23 +0100)]
config: Fix --unset for continuation lines

find_beginning_of_line didn't take into account that the
previous line might have ended with \ in which case it shouldn't
stop but continue its search.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Sun, 10 Feb 2008 08:54:42 +0000 (00:54 -0800)]
Merge branch 'maint'

* maint:
  Fix typo in 'blame' documentation.

16 years agoWork around curl-gnutls not liking to be reinitialized
Mike Hommey [Sat, 9 Feb 2008 09:41:36 +0000 (10:41 +0100)]
Work around curl-gnutls not liking to be reinitialized

curl versions 7.16.3 to 7.18.0 included had a regression in which https
requests following curl_global_cleanup/init sequence would fail with ASN1
parser errors with curl-gnutls. Such sequences happen in some cases such
as git fetch.

We work around this by removing the http_init and http_cleanup calls from
get_refs_via_curl, replacing them with a transport->data initialization
with the http_walker (which does http_init).

While the http_walker is not currently used in get_refs_via_curl, http
and walker code refactor will make it use it.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoIntroduce the config variable pack.packSizeLimit
Johannes Schindelin [Tue, 5 Feb 2008 14:25:04 +0000 (14:25 +0000)]
Introduce the config variable pack.packSizeLimit

"git pack-objects" has the option --max-pack-size to limit the file
size of the packs to a certain amount of bytes.  On platforms where
the pack file size is limited by filesystem constraints, it is easy
to forget this option, and this option does not exist for "git gc"
to begin with.

So introduce a config variable to set the default maximum, but make
this overrideable by the command line.

Suggested by Tor Arvid Lund.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix typo in 'blame' documentation. v1.5.4.1
Tim Stoakes [Sun, 10 Feb 2008 04:19:08 +0000 (14:49 +1030)]
Fix typo in 'blame' documentation.

Signed-off-by: Tim Stoakes <tim@stoakes.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix "git clone" for git:// protocol
Johannes Schindelin [Sun, 10 Feb 2008 03:06:57 +0000 (03:06 +0000)]
Fix "git clone" for git:// protocol

In ba227857(Reduce the number of connects when fetching), we checked
the return value of git_connect() to see if the connection was
successful.

However, for the git:// protocol, there is no need to have another
process, so the return value was NULL.

Now, it makes sense to assume the rule that git_connect() will return
NULL if it fails (at the moment, it die()s if it fails), so return
a dummy child process.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: Make use of the $git_dir variable at sub git_get_project_url_list
Bruno Ribas [Wed, 6 Feb 2008 17:15:12 +0000 (15:15 -0200)]
gitweb: Make use of the $git_dir variable at sub git_get_project_url_list

Signed-off-by: Bruno Ribas <ribas@c3sl.ufpr.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.el: Better handling of subprocess errors.
Alexandre Julliard [Thu, 7 Feb 2008 12:51:34 +0000 (13:51 +0100)]
git.el: Better handling of subprocess errors.

Where possible, capture the output of the git command and display it
if the command fails.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.el: Check for existing buffers on revert.
Alexandre Julliard [Thu, 7 Feb 2008 12:51:20 +0000 (13:51 +0100)]
git.el: Check for existing buffers on revert.

Refuse to revert a file if it is modified in an existing buffer but
not saved. On success, revert the buffers that contains the files that
have been reverted.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.el: Added a command to amend a commit.
Alexandre Julliard [Thu, 7 Feb 2008 12:50:39 +0000 (13:50 +0100)]
git.el: Added a command to amend a commit.

It reverts the commit and sets up the status and edit log buffer to
allow making changes and recommitting it. Bound to C-c C-a.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit.el: Support for showing unknown/ignored directories.
Alexandre Julliard [Thu, 7 Feb 2008 12:50:19 +0000 (13:50 +0100)]
git.el: Support for showing unknown/ignored directories.

Instead of recursing into directories that only contain unknown files,
display only the directory itself. Its contents can be expanded with
git-find-file (bound to C-m).

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-p4: Fix indentation from tab to spaces
Toby Allsopp [Mon, 4 Feb 2008 20:41:43 +0000 (09:41 +1300)]
git-p4: Fix indentation from tab to spaces

Signed-off-by: Toby Allsopp <toby.allsopp@navman.co.nz>
16 years agoMerge branch 'maint'
Junio C Hamano [Thu, 7 Feb 2008 08:22:29 +0000 (00:22 -0800)]
Merge branch 'maint'

* maint:
  gitattributes: fix relative path matching

16 years agogitattributes: fix relative path matching
Junio C Hamano [Thu, 7 Feb 2008 08:02:08 +0000 (00:02 -0800)]
gitattributes: fix relative path matching

There was an embarrassing pair of off-by-one miscounting that
failed to match path "a/b/c" when "a/.gitattributes" tried to
name it with relative path "b/c".

This fixes it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconfig: add test cases for empty value and no value config variables.
Christian Couder [Thu, 7 Feb 2008 05:23:46 +0000 (06:23 +0100)]
config: add test cases for empty value and no value config variables.

The tests in 't1300-repo-config.sh' did not check what happens when
an empty value like the following is used in the config file:

[emptyvalue]
variable =

Also it was not checked that a variable with no value like the
following:

[novalue]
variable

gives a boolean "true" value, while an ampty value gives a boolean
"false" value.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoImprove bash prompt to detect various states like an unfinished merge
Robin Rosenberg [Sun, 30 Sep 2007 00:20:45 +0000 (02:20 +0200)]
Improve bash prompt to detect various states like an unfinished merge

This patch makes the git prompt (when enabled) show if a merge or a
rebase is unfinished. It also detects if a bisect is being done as
well as detached checkouts.

An uncompleted git-am cannot be distinguised from a rebase (the
non-interactive version). Instead of having an even longer prompt
we simply ignore that and hope the power users that use git-am knows
the difference.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint'
Junio C Hamano [Wed, 6 Feb 2008 22:20:15 +0000 (14:20 -0800)]
Merge branch 'maint'

* maint:
  Fix parsing numeric color values
  INSTALL: git-merge no longer uses cpio

16 years agoFix parsing numeric color values
Timo Hirvonen [Wed, 6 Feb 2008 12:16:08 +0000 (14:16 +0200)]
Fix parsing numeric color values

Numeric color only worked if it was at end of line.
Noticed by Chris Larson <clarson@kergoth.com>.

Signed-off-by: Timo Hirvonen <tihirvon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: Make feed entries point to commitdiff view
Florian La Roche [Sun, 3 Feb 2008 11:38:46 +0000 (12:38 +0100)]
gitweb: Make feed entries point to commitdiff view

Change feeds entries (feeds items) from pointing (linking) to 'commit'
view to pointing to 'commitdiff' view.

First, feed entries have whatchanged-like list of files which were
modified in a commit, so 'commitdiff' view more naturally reflects
feed entry (is more naturally alternate / extended version of a feed
item). Second, this way the patches are shown directly and code review
is done more easily via watching feeds.

[jn: Rewritten commit message]

Signed-off-by: Florian La Roche <laroche@redhat.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: improve repository URL matching when following parents
Eric Wong [Tue, 29 Jan 2008 09:18:58 +0000 (01:18 -0800)]
git-svn: improve repository URL matching when following parents

This way we can avoid the spawning of a new SVN::Ra session by
reusing the existing one.

The most problematic issue is that some svn servers disallow
too many connections from a single IP, so this will allow
git-svn to fetch from those repositories with a higher success
rate by using fewer connections.

This sometimes showed up as a new (and redundant)
[svn-remote "$parent_refname"] entry in $GIT_DIR/svn/.metadata.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake git-remote.perl "use strict" compliant
Rafael Garcia-Suarez [Mon, 4 Feb 2008 10:09:00 +0000 (11:09 +0100)]
Make git-remote.perl "use strict" compliant

I was looking at some of the perl commands, and noticed that
git-remote was the only one to lack a 'use strict' pragma at the top,
which could be a good thing for its maintainability. Hopefully, the
required changes are minimal.

Signed-off-by: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoINSTALL: git-merge no longer uses cpio
Gerrit Pape [Wed, 6 Feb 2008 07:03:53 +0000 (07:03 +0000)]
INSTALL: git-merge no longer uses cpio

Since a64d7784e830b3140e7d0f2b45cb3d8fafb84cca git merge doesn't use cpio
anymore, adapt the documentation.

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix misuse of prefix_path()
Johannes Sixt [Tue, 5 Feb 2008 08:17:33 +0000 (09:17 +0100)]
Fix misuse of prefix_path()

When DEFAULT_GIT_TEMPLATE_DIR is specified as a relative path,
init-db made it relative to exec_path using prefix_path(), which
is wrong.  prefix_path() is about a file inside the work tree.
There was a similar misuse in config.c that takes relative
ETC_GITCONFIG path. Noticed by Junio C Hamano.

We concatenate the paths manually. (prefix_filename() won't do
because it expects a prefix with a trailing '/'.)

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: Generalize auto-cc recipient mechanism.
David Brown [Wed, 26 Dec 2007 03:56:29 +0000 (19:56 -0800)]
git-send-email: Generalize auto-cc recipient mechanism.

There are a few options to git-send-email to suppress the automatic
generation of 'Cc' fields: --suppress-from, and --signed-off-cc.
However, there are other times that git-send-email automatically
includes Cc'd recipients.  This is not desirable for all development
environments.

Add a new option --suppress-cc, which can be specified one or more
times to list the categories of auto-cc fields that should be
suppressed.  If not specified, it defaults to values to give the same
behavior as specified by --suppress-from, and --signed-off-cc.  The
categories are:

  self   - patch sender.  Same as --suppress-from.
  author - patch author.
  cc     - cc lines mentioned in the patch.
  cccmd  - avoid running the cccmd.
  sob    - signed off by lines.
  all    - all non-explicit recipients

Signed-off-by: David Brown <git@davidb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoReduce the number of connects when fetching
Daniel Barkalow [Mon, 4 Feb 2008 18:26:23 +0000 (13:26 -0500)]
Reduce the number of connects when fetching

This shares the connection between getting the remote ref list and
getting objects in the first batch. (A second connection is still used
to follow tags).

When we do not fetch objects (i.e. either ls-remote disconnects after
getting list of refs, or we decide we are already up-to-date), we
clean up the connection properly; otherwise the connection is left
open in need of cleaning up to avoid getting an error message from
the remote end when ssh is used.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake error messages from cherry-pick/revert more sensible
Junio C Hamano [Fri, 11 Jan 2008 06:49:35 +0000 (22:49 -0800)]
Make error messages from cherry-pick/revert more sensible

The original "rewrite in C" did somewhat a sloppy job while
stealing code from git-write-tree.

The caller pretends as if the write_tree() function would return
an error code and being able to issue a sensible error message
itself, but write_tree() function just calls die() and never
returns an error.  Worse yet, the function claims that it was
running git-write-tree (which is no longer true after
cherry-pick stole it).

Tested-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: Better handling of EOF
Michael Witten [Mon, 4 Feb 2008 00:53:58 +0000 (19:53 -0500)]
git-send-email: Better handling of EOF

Before, when the user sent the EOF control character, the
prompts would be repeated on the same line as the previous
prompt.

Now, repeat prompts display on separate lines.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: SIG{TERM,INT} handlers
Michael Witten [Mon, 4 Feb 2008 00:53:57 +0000 (19:53 -0500)]
git-send-email: SIG{TERM,INT} handlers

A single signal handler is used for both SIGTERM and
SIGINT in order to clean up after an uncouth termination
of git-send-email.

In particular, the handler resets the text color (this cleanup
was already present), turns on tty echoing (in case termination
occurrs during a masked Password prompt), and informs the user
of of any temporary files created by --compose.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: ssh/login style password requests
Michael Witten [Mon, 4 Feb 2008 00:53:56 +0000 (19:53 -0500)]
git-send-email: ssh/login style password requests

Whilst convenient, it is most unwise to record passwords
in any place but one's brain. Moreover, it is especially
foolish to store them in configuration files, even with
access permissions set accordingly.

git-send-email has been amended, so that if it detects
an smtp username without a password, it promptly prompts
for the password and masks the input for privacy.

Furthermore, the argument to --smtp-pass has been rendered
optional.

The documentation has been updated to reflect these changes.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoman pages are littered with .ft C and others
Jonas Fonseca [Mon, 4 Feb 2008 22:01:20 +0000 (23:01 +0100)]
man pages are littered with .ft C and others

Jakub Narebski <jnareb@gmail.com> wrote Sun, Feb 03, 2008:
> Junio C Hamano wrote:
> > Jakub Narebski <jnareb@gmail.com> writes:
> >
> > [From] http://thread.gmane.org/gmane.comp.version-control.git/53457/focus=53458
> Julian Phillips:
> > Are you using docbook xsl 1.72?  There are known problems building the
> > manpages with that version.  1.71 works, and 1.73 should work when it get
> > released.

I was able to solve this problem with this patch, which adds a XSL file
used specifically for DOCBOOK_XSL_172=YesPlease and where dots and
backslashes are escaped properly so they won't be substituted to the
wrong thing further down the "DocBook XSL pipeline". Doing the escaping
in the existing callout.xsl breaks v1.70.1. Hopefully v1.73 will end
this part of the manpage nightmare.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd a BuildRequires for gettext in the spec file.
James Bowes [Mon, 4 Feb 2008 13:13:07 +0000 (08:13 -0500)]
Add a BuildRequires for gettext in the spec file.

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTest :/string form for checkout
Daniel Barkalow [Sat, 2 Feb 2008 09:37:01 +0000 (04:37 -0500)]
Test :/string form for checkout

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