Code

git.git
15 years agoMove 'rev-parse --git-dir' test to t1500
SZEDER Gábor [Sat, 14 Feb 2009 16:16:28 +0000 (17:16 +0100)]
Move 'rev-parse --git-dir' test to t1500

Commit 72183cb2 (Fix gitdir detection when in subdir of
gitdir, 2009-01-16) added a test to 't1501-worktree' to check the
behaviour of 'git rev-parse --git-dir' in a special case.  However,
t1501 is about testing separate work tree setups, and not about basic
'rev-parse' functionality, which is tested in t1500-rev-parse.
Therefore, this patch moves that test to t1500.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: pruning recipe for destructive filter-branch
Thomas Rast [Sat, 14 Feb 2009 20:56:51 +0000 (21:56 +0100)]
Documentation: pruning recipe for destructive filter-branch

Add a section about how to shrink a repository's size after running
git-filter-branch to remove large blobs from history.

This comes up every week or so on IRC, and the commands required to
handle every case are not very newbie-friendly, so hopefully writing
them down somewhere leads to fewer questions.

It may seem contradictory to document fallbacks for older Gits in
newer docs, but we want to point people at this as a FAQ answer, and
they will frequently not have the newest version installed.

Thanks to Björn Steinbrink and Junio C Hamano for comments and
corrections.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agosymbolic-ref: allow refs/<whatever> in HEAD
Jeff King [Fri, 13 Feb 2009 18:26:09 +0000 (13:26 -0500)]
symbolic-ref: allow refs/<whatever> in HEAD

Commit afe5d3d5 introduced a safety valve to symbolic-ref to
disallow installing an invalid HEAD. It was accompanied by
b229d18a, which changed validate_headref to require that
HEAD contain a pointer to refs/heads/ instead of just refs/.
Therefore, the safety valve also checked for refs/heads/.

As it turns out, topgit is using refs/top-bases/ in HEAD,
leading us to re-loosen (at least temporarily) the
validate_headref check made in b229d18a. This patch does the
corresponding loosening for the symbolic-ref safety valve,
so that the two are in agreement once more.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRemove redundant bit clears from diff_setup()
Keith Cascio [Fri, 13 Feb 2009 17:33:34 +0000 (09:33 -0800)]
Remove redundant bit clears from diff_setup()

All bits already clear after memset(0).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash-completion: Complete the values of color.interactive, color.ui, color.pager
Matt Kraai [Thu, 12 Feb 2009 15:55:54 +0000 (07:55 -0800)]
bash-completion: Complete the values of color.interactive, color.ui, color.pager

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoInstall the default "master" branch configuration after cloning a void
Junio C Hamano [Thu, 12 Feb 2009 06:42:27 +0000 (22:42 -0800)]
Install the default "master" branch configuration after cloning a void

After "cloning from an empty repository", we have a configuration to
describe the remote's URL and the default ref mappings, but we lack the
branch configuration for the default branch we create on our end,
"master".

It is likely that the empty repository we cloned from will point the
default "master" branch with its HEAD, so prepare the local configuration
to match.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate documentation to add further information about using Thunderbird with git...
Jeremy White [Thu, 12 Feb 2009 21:17:04 +0000 (15:17 -0600)]
Update documentation to add further information about using Thunderbird with git-imap-send.

Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-rebase.txt: --interactive does not work with --whitespace
Mark Burton [Thu, 12 Feb 2009 10:21:19 +0000 (10:21 +0000)]
git-rebase.txt: --interactive does not work with --whitespace

Signed-off-by: Mark Burton <markb@ordern.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd 'rm -f' equivalent to 'git rm' example of filter-branch --index-filter
Jacob Helwig [Thu, 12 Feb 2009 18:01:10 +0000 (10:01 -0800)]
Add 'rm -f' equivalent to 'git rm' example of filter-branch --index-filter

Signed-off-by: Jacob Helwig <jacob.helwig@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRevert "validate_headref: tighten ref-matching to just branches"
Junio C Hamano [Thu, 12 Feb 2009 21:02:09 +0000 (13:02 -0800)]
Revert "validate_headref: tighten ref-matching to just branches"

This reverts commit b229d18a809c169314b7f0d048dc5a7632e8f916, at least
until we figure out how to work better with TopGit that points HEAD to
refs/top-bases/ hierarchy.

15 years agoBugfix: GIT_EXTERNAL_DIFF with more than one changed files
Nazri Ramliy [Thu, 12 Feb 2009 13:36:14 +0000 (21:36 +0800)]
Bugfix: GIT_EXTERNAL_DIFF with more than one changed files

When there is more than one file that are changed, running git diff with
GIT_EXTERNAL_DIFF incorrectly diagnoses an programming error and dies.
The check introduced in 479b0ae (diff: refactor tempfile cleanup handling,
2009-01-22) to detect a temporary file slot that forgot to remove its
temporary file was inconsistent with the way the codepath to remove the
temporary to mark the slot that it is done with it.

This patch fixes this problem and adds a test case for it.

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Thu, 12 Feb 2009 02:47:30 +0000 (18:47 -0800)]
Merge branch 'maint'

* maint:
  Prepare for 1.6.1.4.
  Make repack less likely to corrupt repository
  fast-export: ensure we traverse commits in topological order
  Clear the delta base cache if a pack is rebuilt

Conflicts:
RelNotes

15 years agoPrepare for 1.6.1.4.
Junio C Hamano [Thu, 12 Feb 2009 02:44:03 +0000 (18:44 -0800)]
Prepare for 1.6.1.4.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint-1.6.0' into maint
Junio C Hamano [Thu, 12 Feb 2009 02:32:37 +0000 (18:32 -0800)]
Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
  Make repack less likely to corrupt repository
  fast-export: ensure we traverse commits in topological order
  Clear the delta base cache if a pack is rebuilt

15 years agoMake repack less likely to corrupt repository
Junio C Hamano [Tue, 10 Feb 2009 20:16:31 +0000 (12:16 -0800)]
Make repack less likely to corrupt repository

Some platforms refuse to rename a file that is open.  When repacking an
already packed repository without adding any new object, the resulting
pack will contain the same set of objects as an existing pack, and on such
platforms, a newly created packfile cannot replace the existing one.

The logic detected this issue but did not try hard enough to recover from
it.  Especially because the files that needs renaming come in pairs, there
potentially are different failure modes that one can be renamed but the
others cannot.  Asking manual recovery to end users were error prone.

This patch tries to make it more robust by first making sure all the
existing files that need to be renamed have been renamed before
continuing, and attempts to roll back if some failed to rename.

This is based on an initial patch by Robin Rosenberg.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofast-export: ensure we traverse commits in topological order
Elijah Newren [Wed, 11 Feb 2009 06:03:53 +0000 (23:03 -0700)]
fast-export: ensure we traverse commits in topological order

fast-export will only list as parents those commits which have already
been traversed (making it appear as if merges have been squashed if not
all parents have been traversed).  To avoid this silent squashing of
merge commits, we request commits in topological order.

Signed-off-by: Elijah Newren <newren@gmail.com>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofilter-branch: Add more error-handling
Eric Kidd [Wed, 11 Feb 2009 21:10:41 +0000 (16:10 -0500)]
filter-branch: Add more error-handling

9273b56 (filter-branch: Fix fatal error on bare repositories, 2009-02-03)
fixed a missing check of return status from an underlying command in
git-filter-branch, but there still are places that do not check errors.
For example, the command does not pay attention to the exit status of the
command given by --commit-filter.  It should abort in such a case.

This attempts to fix all the remaining places that fails to checks errors.

In two places, I've had to break apart pipelines in order to check the
error code for the first stage of the pipeline, as discussed here:

  http://kerneltrap.org/mailarchive/git/2009/1/28/4835614

Feedback on this patch was provided by Johannes Sixt, Johannes Schindelin
and Junio C Hamano.  Thomas Rast helped with pipeline error handling.

Signed-off-by: Eric Kidd <git@randomhacks.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix contrib/hooks/post-receive-email for new duplicate branch
Pat Notz [Tue, 10 Feb 2009 16:43:30 +0000 (09:43 -0700)]
Fix contrib/hooks/post-receive-email for new duplicate branch

In the show_new_revisions function, the original code:

  git rev-parse --not --branches | grep -v $(git rev-parse $refname) |

isn't quite right since one can create a new branch and push it
without any new commits.  In that case, two refs will have the same
sha1 but both would get filtered by the 'grep'.  In the end, we'll
show ALL the history which is not what we want.  Instead, we should
list the branches by name and remove the branch being updated and THEN
pass that list through rev-parse.

Revised as suggested by Jakub Narebski and Junio C Hamano to use
git-for-each-ref instead of git-branch.  (Thanks!)

Signed-off-by: Pat Notz <pknotz@sandia.gov>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoClear the delta base cache if a pack is rebuilt
Shawn O. Pearce [Wed, 11 Feb 2009 18:15:30 +0000 (10:15 -0800)]
Clear the delta base cache if a pack is rebuilt

There is some risk that re-opening a regenerated pack file with
different offsets could leave stale entries within the delta base
cache that could be matched up against other objects using the same
"struct packed_git*" and pack offset.

Throwing away the entire delta base cache in this case is safer,
as we don't have to worry about a recycled "struct packed_git*"
matching to the wrong base object, resulting in delta apply
errors while unpacking an object.

Suggested-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Wed, 11 Feb 2009 18:20:12 +0000 (10:20 -0800)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  test case for regression caused by git-svn empty symlink fix
  git-svn: fix broken symlink workaround when switching branches
  git-svn: Print revision while searching for earliest use of path
  git-svn: abstract out a block into new method other_gs()
  git-svn: allow disabling expensive broken symlink checks

15 years agoSquelch overzealous "ignoring dangling symref" in an empty repository
Junio C Hamano [Wed, 11 Feb 2009 17:22:16 +0000 (09:22 -0800)]
Squelch overzealous "ignoring dangling symref" in an empty repository

057e713 (Warn use of "origin" when remotes/origin/HEAD is dangling,
2009-02-08) tried to warn dangling refs/remotes/origin/HEAD only when
"origin" was used to refer to it.  There was one corner case a symref is
expected to be dangling and this warning is unwarranted: HEAD in an empty
repository.

This squelches the warning for this special case.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest case for regression caused by git-svn empty symlink fix
Anton Gyllenberg [Tue, 10 Feb 2009 22:38:45 +0000 (00:38 +0200)]
test case for regression caused by git-svn empty symlink fix

Commit dbc6c74d0858d77e61e092a48d467e725211f8e9 "git-svn: handle empty
files marked as symlinks in SVN" caused a regression in an unusual case
where a branch has been created in SVN, later deleted and then created
again from another branch point and the original branch point had empty
files not in the new branch. In some cases git svn fetch will then fail
while trying to fetch the empty file from the wrong SVN revision.

This adds a test case that reproduces the issue.

[ew: added additional test to ensure file was created correctly
     made test file executable ]

Signed-off-by: Anton Gyllenberg <anton@iki.fi>
Acked-by: Eric Wong <normalperson@yhbt.net>
15 years agogit-svn: fix broken symlink workaround when switching branches
Eric Wong [Wed, 11 Feb 2009 09:56:58 +0000 (01:56 -0800)]
git-svn: fix broken symlink workaround when switching branches

Thanks to Anton Gyllenberg <anton@iki.fi> for the bug report
(and testcase in the following commit):
> Commit dbc6c74d0858d77e61e092a48d467e725211f8e9 "git-svn:
> handle empty files marked as symlinks in SVN" caused a
> regression in an unusual case where a branch has been created
> in SVN, later deleted and then created again from another
> branch point and the original branch point had empty files not
> in the new branch. In some cases git svn fetch will then fail
> while trying to fetch the empty file from the wrong SVN
> revision.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit-svn: Print revision while searching for earliest use of path
Deskin Miller [Mon, 9 Feb 2009 00:33:18 +0000 (19:33 -0500)]
git-svn: Print revision while searching for earliest use of path

When initializing a git-svn repository from a Subversion repoository,
it is common to be interested in a path which did not exist in the
initial commit to Subversion.  In a large repository, the initial fetch
may take some looking for the earliest existence of the path time while
the user receives no additional feedback.  Print the highest revision
number scanned thus far to let the user know something is still
happening.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
15 years agogit-svn: abstract out a block into new method other_gs()
Sam Vilain [Tue, 26 Jun 2007 07:23:59 +0000 (19:23 +1200)]
git-svn: abstract out a block into new method other_gs()

We will be adding a more places that need to find git revisions
corresponding to new parents, so abstract out this section into a new
method.

Signed-off-by: Yuval Kogman <nothingmuch@woobling.org>
Signed-off-by: Sam Vilain <sam@vilain.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
[ew: minor formatting changes]

15 years agogit-svn: allow disabling expensive broken symlink checks
Eric Wong [Sun, 1 Feb 2009 01:31:12 +0000 (17:31 -0800)]
git-svn: allow disabling expensive broken symlink checks

Since dbc6c74d0858d77e61e092a48d467e725211f8e9, git-svn has had
an expensive check for broken symlinks that exist in some
repositories.  This leads to a heavy performance hit on
repositories with many empty blobs that are not supposed to be
symlinks.

The workaround is enabled by default; and may be disabled via:

  git config svn.brokenSymlinkWorkaround false

Reported by Markus Heidelberg.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 11 Feb 2009 10:00:22 +0000 (02:00 -0800)]
Merge branch 'maint'

* maint:
  revision traversal and pack: notice and die on missing commit

15 years agoMerge branch 'maint-1.5.6' into maint
Junio C Hamano [Wed, 11 Feb 2009 10:00:07 +0000 (02:00 -0800)]
Merge branch 'maint-1.5.6' into maint

* maint-1.5.6:
  revision traversal and pack: notice and die on missing commit

15 years agoMerge branch 'maint-1.5.5' into maint-1.5.6
Junio C Hamano [Wed, 11 Feb 2009 09:41:22 +0000 (01:41 -0800)]
Merge branch 'maint-1.5.5' into maint-1.5.6

* maint-1.5.5:
  revision traversal and pack: notice and die on missing commit

Conflicts:
revision.c

15 years agoMerge branch 'maint-1.5.4' into maint-1.5.5
Junio C Hamano [Wed, 11 Feb 2009 09:40:12 +0000 (01:40 -0800)]
Merge branch 'maint-1.5.4' into maint-1.5.5

* maint-1.5.4:
  revision traversal and pack: notice and die on missing commit

15 years agorevision traversal and pack: notice and die on missing commit
Junio C Hamano [Wed, 11 Feb 2009 09:27:43 +0000 (01:27 -0800)]
revision traversal and pack: notice and die on missing commit

cc0e6c5 (Handle return code of parse_commit in revision machinery,
2007-05-04) attempted to tighten error checking in the revision machinery,
but it wasn't enough.  When get_revision_1() was asked for the next commit
to return, it tries to read and simplify the parents of the commit to be
returned, but an error while doing so was silently ignored and reported as
a truncated history to the caller instead.

This resulted in an early end of "git log" output or a pack that lacks
older commits from "git pack-objects", without any error indication in the
exit status from these commands, even though the underlying parse_commit()
issues an error message to the end user.

Note that the codepath in add_parents_list() that paints parents of an
UNINTERESTING commit UNINTERESTING silently ignores the error when
parse_commit() fails; this is deliberate and in line with aeeae1b
(revision traversal: allow UNINTERESTING objects to be missing,
2009-01-27).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobuiltin-receive-pack.c: do not initialize statics to 0
Junio C Hamano [Mon, 9 Feb 2009 06:19:43 +0000 (22:19 -0800)]
builtin-receive-pack.c: do not initialize statics to 0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoreceive-pack: receive.denyDeleteCurrent
Junio C Hamano [Mon, 9 Feb 2009 06:31:21 +0000 (22:31 -0800)]
receive-pack: receive.denyDeleteCurrent

This is a companion patch to the recent 3d95d92 (receive-pack: explain
what to do when push updates the current branch, 2009-01-31).

Deleting the current branch from a remote will result in the next clone
from it not check out anything, among other things.  It also is one of the
cause that makes remotes/origin/HEAD a dangling symbolic ref.  This patch
still allows the traditional behaviour but with a big warning, and promises
that the default will change to 'refuse' in a future release.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDrop double-semicolon in C
Junio C Hamano [Wed, 11 Feb 2009 01:42:04 +0000 (17:42 -0800)]
Drop double-semicolon in C

The worst offenders are "continue;;" and "break;;" in switch statements.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoWarn use of "origin" when remotes/origin/HEAD is dangling
Junio C Hamano [Mon, 9 Feb 2009 07:52:01 +0000 (23:52 -0800)]
Warn use of "origin" when remotes/origin/HEAD is dangling

The previous one squelched the diagnositic message we used to issue every
time we enumerated the refs and noticed a dangling ref.  This adds the
warning back to the place where the user actually attempts to use it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoremote prune: warn dangling symrefs
Junio C Hamano [Mon, 9 Feb 2009 07:27:10 +0000 (23:27 -0800)]
remote prune: warn dangling symrefs

If you prune from the remote "frotz" that deleted the ref your tracking
branch remotes/frotz/HEAD points at, the symbolic ref will become
dangling.  We used to detect this as an error condition and issued a
message every time refs are enumerated.

This stops the error message, but moves the warning to "remote prune".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix the installation path for html documentation
Michael J Gruber [Tue, 10 Feb 2009 15:14:13 +0000 (16:14 +0100)]
Fix the installation path for html documentation

026fa0d (Move computation of absolute paths from Makefile to runtime in
preparation for RUNTIME_PREFIX, 2009-01-18) broke the installation of html
documentation.  A relative htmldir is given to Documentation/Makefile and
html documentations are installed in a subdirectory of "Documentation" in
the source tree.

Fix this by not exporting htmldir from Makefile; this allows
Documentation/Makefile to compute the htmldir from the prefix.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGeneralize and libify index_is_dirty() to index_differs_from(...)
Stephan Beyer [Tue, 10 Feb 2009 14:30:35 +0000 (15:30 +0100)]
Generalize and libify index_is_dirty() to index_differs_from(...)

index_is_dirty() in builtin-revert.c checks if the index is dirty.
This patch generalizes this function to check if the index differs
from a revision, i.e. the former index_is_dirty() behavior can now be
achieved by index_differs_from("HEAD", 0).

The second argument "diff_flags" allows to set further diff option
flags like DIFF_OPT_IGNORE_SUBMODULES. See DIFF_OPT_* macros in diff.h
for a list.

index_differs_from() seems to be useful for more than builtin-revert.c,
so it is moved into diff-lib.c and also used in builtin-commit.c.

Yet to mention:

 - "rev.abbrev = 0;" can be safely removed.
   This has no impact on performance or functioning of neither
   setup_revisions() nor run_diff_index().

 - rev.pending.objects is free()d because this fixes a leak.
   (Also see 295dd2ad "Fix memory leak in traverse_commit_list")

Mentored-by: Daniel Barkalow <barkalow@iabervon.org>
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMakefile: resort filenames alphabetically
Stephan Beyer [Mon, 9 Feb 2009 22:00:45 +0000 (23:00 +0100)]
Makefile: resort filenames alphabetically

Some filenames in the Makefile got out of order.
This patch resorts the filename lists which makes it easier
to grasp that it is sorted and that this should be kept.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoModernize t5400 test script
Junio C Hamano [Mon, 9 Feb 2009 21:39:52 +0000 (13:39 -0800)]
Modernize t5400 test script

Many tests checked for failure by hand without using test_must_fail (they
probably predate the shell function).

When we know the desired outcome, explicitly check for it, instead of
checking if the result does not match one possible incorrect outcome.
E.g. if you expect a push to be refused, you do not test if the result is
different from what was pushed.  Instead, make sure that the ref did not
before and after the push.

The test sequence chdir'ed around and any failure at one point could have
started the next test in an unexpected directory.  Fix this problem by
using subshells as necessary.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDescribe notable git.el changes in the release notes
Alexandre Julliard [Mon, 9 Feb 2009 13:39:30 +0000 (14:39 +0100)]
Describe notable git.el changes in the release notes

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRevert "Merge branch 'js/notes'"
Junio C Hamano [Wed, 11 Feb 2009 05:31:33 +0000 (21:31 -0800)]
Revert "Merge branch 'js/notes'"

This reverts commit 7b75b331f6744fbf953fe8913703378ef86a2189, reversing
changes made to 5d680a67d7909c89af96eba4a2d77abed606292b.

15 years agoMerge branch 'lh/submodule-tree-traversal' (early part)
Junio C Hamano [Wed, 11 Feb 2009 05:31:19 +0000 (21:31 -0800)]
Merge branch 'lh/submodule-tree-traversal' (early part)

* 'lh/submodule-tree-traversal' (early part):
  tree.c: allow read_tree_recursive() to traverse gitlink entries

15 years agoMerge branch 'js/git-submodule-trailing-slash'
Junio C Hamano [Wed, 11 Feb 2009 05:31:08 +0000 (21:31 -0800)]
Merge branch 'js/git-submodule-trailing-slash'

* js/git-submodule-trailing-slash:
  submodule: warn about non-submodules
  Let ls-files strip trailing slashes in submodules' paths

15 years agoMerge branch 'js/maint-1.6.0-path-normalize'
Junio C Hamano [Wed, 11 Feb 2009 05:30:52 +0000 (21:30 -0800)]
Merge branch 'js/maint-1.6.0-path-normalize'

* js/maint-1.6.0-path-normalize:
  Remove unused normalize_absolute_path()
  Test and fix normalize_path_copy()
  Fix GIT_CEILING_DIRECTORIES on Windows
  Move sanitary_path_copy() to path.c and rename it to normalize_path_copy()
  Make test-path-utils more robust against incorrect use

15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 11 Feb 2009 05:30:45 +0000 (21:30 -0800)]
Merge branch 'maint'

* maint:
  Clear the delta base cache during fast-import checkpoint

15 years agoMerge branch 'maint-1.6.0' into maint
Junio C Hamano [Tue, 10 Feb 2009 23:32:26 +0000 (15:32 -0800)]
Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
  Clear the delta base cache during fast-import checkpoint

15 years agoClear the delta base cache during fast-import checkpoint
Shawn O. Pearce [Tue, 10 Feb 2009 21:36:12 +0000 (13:36 -0800)]
Clear the delta base cache during fast-import checkpoint

Otherwise we may reuse the same memory address for a totally
different "struct packed_git", and a previously cached object from
the prior occupant might be returned when trying to unpack an object
from the new pack.

Found-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-web--browse: Fix check for /bin/start
Todd Zullinger [Sun, 8 Feb 2009 23:12:43 +0000 (18:12 -0500)]
git-web--browse: Fix check for /bin/start

The previous check in git-web--browse for /bin/start used test -n
/bin/start, which was always true.  This lead to "start" being tried
first in the browser list.  On systems with upstart installed, "start"
exists and might be in the PATH, but it makes a poor choice for a web
browser.  Instead, test that /bin/start exists and is executable.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Mon, 9 Feb 2009 06:07:53 +0000 (22:07 -0800)]
Merge branch 'maint'

* maint:
  gitweb: add $prevent_xss option to prevent XSS by repository content
  rev-list: fix showing distance when using --bisect-all

15 years agocompletion: Get rid of tabbed indentation in comments. Replace with spaces.
Ted Pavlic [Fri, 6 Feb 2009 16:05:38 +0000 (11:05 -0500)]
completion: Get rid of tabbed indentation in comments. Replace with spaces.

Signed-off-by: Ted Pavlic <ted@tedpavlic.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocompletion: Fix GIT_PS1_SHOWDIRTYSTATE to prevent unbound variable errors.
Ted Pavlic [Fri, 6 Feb 2009 16:05:37 +0000 (11:05 -0500)]
completion: Fix GIT_PS1_SHOWDIRTYSTATE to prevent unbound variable errors.

Signed-off-by: Ted Pavlic <ted@tedpavlic.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: add $prevent_xss option to prevent XSS by repository content
Matt McCutchen [Sun, 8 Feb 2009 00:00:09 +0000 (19:00 -0500)]
gitweb: add $prevent_xss option to prevent XSS by repository content

Add a gitweb configuration variable $prevent_xss that disables features
to prevent content in repositories from launching cross-site scripting
(XSS) attacks in the gitweb domain.  Currently, this option makes gitweb
ignore README.html (a better solution may be worked out in the future)
and serve a blob_plain file of an untrusted type with
"Content-Disposition: attachment", which tells the browser not to show
the file at its original URL.

The XSS prevention is currently off by default.

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodoc/bundle: Use the more conventional suffix '.bundle'
Santi Béjar [Sat, 7 Feb 2009 22:21:49 +0000 (23:21 +0100)]
doc/bundle: Use the more conventional suffix '.bundle'

Although it does not matter in general it is handled different by
"git clone", as it removes it to make the "humanish" name of the
new repository.

Signed-off-by: Santi Béjar <santi@agolina.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd two extra tests for git rebase
Johannes Schindelin [Mon, 9 Feb 2009 05:40:42 +0000 (21:40 -0800)]
Add two extra tests for git rebase

15 years agoDocumentation: clarify commits affected by gitk --merge
Sitaram Chamarty [Fri, 6 Feb 2009 04:40:53 +0000 (10:10 +0530)]
Documentation: clarify commits affected by gitk --merge

Signed-off-by: Sitaram Chamarty <sitaramc@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoadd -p: get rid of Git.pm warnings about unitialized values
Stephan Beyer [Sun, 8 Feb 2009 17:40:39 +0000 (18:40 +0100)]
add -p: get rid of Git.pm warnings about unitialized values

After invoking git add -p I always got the warnings:

 Use of uninitialized value $_[3] in exec at Git.pm line 1282.
 Use of uninitialized value $args[2] in join or string at Git.pm line 1264.

A bisect showed that these warnings occur in a301973 "add -p: print errors
in separate color" the first time.

They can be reproduced by setting color.ui (or color.interactive) to "auto"
and unsetting color.interactive.help and color.interactive.error.
I am using Perl 5.10.0.

The reason of the warning is that color.interactive.error defaults to
color.interactive.help which defaults to nothing in the specific codepath.
It defaults to 'red bold' some lines above which could lead to the wrong
assumption that it always defaults to 'red bold' now.

This patch lets it default to 'red bold', blowing the warnings away.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Acked-By: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agorev-list: fix showing distance when using --bisect-all
Christian Couder [Sun, 8 Feb 2009 14:54:47 +0000 (15:54 +0100)]
rev-list: fix showing distance when using --bisect-all

Before d467a52 ("Make '--decorate' set an explicit 'show_decorations'
flag", Nov 3 2008), commit decorations were shown whenever they exist, and
distances stored in them by "git rev-list --bisect-all" were automatically
shown.  d467a52 changed the rule so that commit decorations are not shown
unless rev_info explicitly asks to, with its show_decorations bit, but
forgot that the ones "git rev-list --bisect-all" adds need to be shown.

This patch fixes this old breakage.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agosubmodule: warn about non-submodules
Johannes Schindelin [Sat, 7 Feb 2009 13:43:15 +0000 (14:43 +0100)]
submodule: warn about non-submodules

Earlier, when you called

        git submodule some/bogus/path

Git would silently ignore the path, without warning the user about the
likely mistake.  Now it does.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoLet ls-files strip trailing slashes in submodules' paths
Johannes Schindelin [Sat, 7 Feb 2009 13:43:03 +0000 (14:43 +0100)]
Let ls-files strip trailing slashes in submodules' paths

Tab completion makes it easy to add a trailing slash to a submodule path.
As it is completely clear what the user actually wanted to say, be nice
and strip that slash at the end.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRemove unused normalize_absolute_path()
Johannes Sixt [Sat, 7 Feb 2009 15:08:31 +0000 (16:08 +0100)]
Remove unused normalize_absolute_path()

This function is now superseded by normalize_path_copy().

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoTest and fix normalize_path_copy()
Johannes Sixt [Sat, 7 Feb 2009 15:08:30 +0000 (16:08 +0100)]
Test and fix normalize_path_copy()

This changes the test-path-utils utility to invoke normalize_path_copy()
instead of normalize_absolute_path() because the latter is about to be
removed.

The test cases in t0060 are adjusted in two regards:

- normalize_path_copy() more often leaves a trailing slash in the result.
  This has no negative side effects because the new user of this function,
  longest_ancester_length(), already accounts for this behavior.

- The function can fail.

The tests uncover a flaw in normalize_path_copy(): If there are
sufficiently many '..' path components so that the root is reached, such as
in "/d1/s1/../../d2", then the leading slash was lost. This manifested
itself that (assuming there is a repository at /tmp/foo)

  $ git add /d1/../tmp/foo/some-file

reported 'pathspec is outside repository'. This is now fixed.

Moreover, the test case descriptions of t0060 now include the test data and
expected outcome.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix GIT_CEILING_DIRECTORIES on Windows
René Scharfe [Sat, 7 Feb 2009 15:08:29 +0000 (16:08 +0100)]
Fix GIT_CEILING_DIRECTORIES on Windows

Using git with GIT_CEILING_DIRECTORIES crashed on Windows due to a failed
assertion in normalize_absolute_path(): This function expects absolute
paths to start with a slash, while on Windows they can start with a drive
letter or a backslash.

This fixes it by using the alternative, normalize_path_copy() instead,
which can handle Windows-style paths just fine.

Secondly, the portability macro PATH_SEP is used instead of expecting
colons to be used as path list delimiter.

The test script t1504 is also changed to help MSYS's bash recognize some
program arguments as path list. (MSYS's bash must translate POSIX-style
path lists to Windows-style path lists, and the heuristic did not catch
some cases.)

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMove sanitary_path_copy() to path.c and rename it to normalize_path_copy()
Johannes Sixt [Sat, 7 Feb 2009 15:08:28 +0000 (16:08 +0100)]
Move sanitary_path_copy() to path.c and rename it to normalize_path_copy()

This function and normalize_absolute_path() do almost the same thing. The
former already works on Windows, but the latter crashes.

In subsequent changes we will remove normalize_absolute_path(). Here we
make the replacement function reusable. On the way we rename it to reflect
that it does some path normalization. Apart from that this is only moving
around code.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake test-path-utils more robust against incorrect use
Johannes Sixt [Sat, 7 Feb 2009 15:08:27 +0000 (16:08 +0100)]
Make test-path-utils more robust against incorrect use

Previously, this test utility happily returned with exit code 0 if garbage
was thrown at it. Now it reports failure if an unknown function name was
given on the command line.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotree.c: allow read_tree_recursive() to traverse gitlink entries
Lars Hjemli [Sun, 25 Jan 2009 00:52:05 +0000 (01:52 +0100)]
tree.c: allow read_tree_recursive() to traverse gitlink entries

When the callback function invoked from read_tree_recursive() returns
the value `READ_TREE_RECURSIVE` for a gitlink entry, the traversal will
now continue into the tree connected to the gitlinked commit. This
functionality can be used to allow inter-repository operations, but
since the current users of read_tree_recursive() does not yet support
such operations, they have been modified where necessary to make sure
that they never return READ_TREE_RECURSIVE for gitlink entries (hence
no change in behaviour should be introduces by this patch alone).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.6.2-rc0 v1.6.2-rc0
Junio C Hamano [Sat, 7 Feb 2009 19:06:34 +0000 (11:06 -0800)]
GIT 1.6.2-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'tr/add-p-single'
Junio C Hamano [Sat, 7 Feb 2009 19:10:16 +0000 (11:10 -0800)]
Merge branch 'tr/add-p-single'

* tr/add-p-single:
  add -p: import Term::ReadKey with 'require'
  add -p: print errors in separate color
  add -p: prompt for single characters

15 years agoMerge branch 'js/filter-branch-submodule'
Junio C Hamano [Sat, 7 Feb 2009 19:09:48 +0000 (11:09 -0800)]
Merge branch 'js/filter-branch-submodule'

* js/filter-branch-submodule:
  filter-branch: do not consider diverging submodules a 'dirty worktree'
  filter-branch: Fix fatal error on bare repositories

15 years agoMerge branch 'maint'
Junio C Hamano [Sat, 7 Feb 2009 18:44:25 +0000 (10:44 -0800)]
Merge branch 'maint'

* maint:
  GIT 1.6.1.3

Conflicts:
GIT-VERSION-GEN
RelNotes

15 years agoemacs: Remove the no longer maintained vc-git package.
Alexandre Julliard [Sat, 7 Feb 2009 13:24:54 +0000 (14:24 +0100)]
emacs: Remove the no longer maintained vc-git package.

vc-git is distributed with Emacs since version 22.2, and is maintained
in the Emacs CVS tree. This file is obsolete and causes trouble for
people who want to add contrib/emacs to their load-path.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agogit.el: Add some notes about Emacs versions compatibility.
Alexandre Julliard [Sat, 7 Feb 2009 13:21:58 +0000 (14:21 +0100)]
git.el: Add some notes about Emacs versions compatibility.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agogit.el: Use integer instead of character constants in case statement.
Alexandre Julliard [Sat, 7 Feb 2009 13:01:26 +0000 (14:01 +0100)]
git.el: Use integer instead of character constants in case statement.

This is for compatibility with XEmacs. Reported by Vassili Karpov.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agogit.el: Set a regexp for paragraph-separate in log-edit mode.
Alexandre Julliard [Tue, 27 Jan 2009 10:59:54 +0000 (11:59 +0100)]
git.el: Set a regexp for paragraph-separate in log-edit mode.

This allows using fill-paragraph on the log message without
interference from the various header fields.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agogit.el: Make git-run-command-region display the error if any.
Alexandre Julliard [Sun, 23 Nov 2008 15:12:45 +0000 (16:12 +0100)]
git.el: Make git-run-command-region display the error if any.

This makes it easier to figure out why a commit has failed.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agogit.el: Add commands for cherry-pick and revert.
Alexandre Julliard [Sun, 23 Nov 2008 13:34:48 +0000 (14:34 +0100)]
git.el: Add commands for cherry-pick and revert.

Support for cherry-picking and reverting commits, with automatic
formatting of the commit log message. Bound to C-c C-p and C-c C-v
respectively.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agogit.el: Add a command to create a new branch.
Alexandre Julliard [Sun, 23 Nov 2008 13:25:50 +0000 (14:25 +0100)]
git.el: Add a command to create a new branch.

Prompts for a branch name, create a new branch at HEAD and switch to
it. Bound to C-c C-b by default.

Based on a patch by Rémi Vanicat <vanicat@debian.org>.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agogit.el: Add a checkout command.
Alexandre Julliard [Sun, 23 Nov 2008 13:16:22 +0000 (14:16 +0100)]
git.el: Add a checkout command.

Prompts for a branch name and checks it out. Bound to C-c C-o by
default.

Based on a patch by Rémi Vanicat <vanicat@debian.org>.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
15 years agoGIT 1.6.1.3 v1.6.1.3
Junio C Hamano [Sat, 7 Feb 2009 08:51:47 +0000 (00:51 -0800)]
GIT 1.6.1.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoadd -p: import Term::ReadKey with 'require'
Thomas Rast [Fri, 6 Feb 2009 19:30:01 +0000 (20:30 +0100)]
add -p: import Term::ReadKey with 'require'

eval{use...} is no good because the 'use' is evaluated at compile
time, so manually 'require' it.  We need to forward declare the
functions we use, otherwise Perl raises a compilation error.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'js/maint-remote-remove-mirror'
Junio C Hamano [Fri, 6 Feb 2009 03:40:41 +0000 (19:40 -0800)]
Merge branch 'js/maint-remote-remove-mirror'

* js/maint-remote-remove-mirror:
  builtin-remote: make rm operation safer in mirrored repository
  builtin-remote: make rm() use properly named variable to hold return value

15 years agoMerge branch 'js/notes'
Junio C Hamano [Fri, 6 Feb 2009 03:40:39 +0000 (19:40 -0800)]
Merge branch 'js/notes'

* js/notes:
  git-notes: fix printing of multi-line notes
  notes: fix core.notesRef documentation
  Add an expensive test for git-notes
  Speed up git notes lookup
  Add a script to edit/inspect notes
  Introduce commit notes

Conflicts:
pretty.c

15 years agoMerge branch 'jc/refuse-push-to-current'
Junio C Hamano [Fri, 6 Feb 2009 03:40:36 +0000 (19:40 -0800)]
Merge branch 'jc/refuse-push-to-current'

* jc/refuse-push-to-current:
  receive-pack: explain what to do when push updates the current branch

15 years agoMerge branch 'rc/http-push'
Junio C Hamano [Fri, 6 Feb 2009 03:40:36 +0000 (19:40 -0800)]
Merge branch 'rc/http-push'

* rc/http-push:
  http-push: wrap signature of get_remote_object_url
  http-push: add back underscore separator before lock token
  http-push.c: get_remote_object_url() is only used under USE_CURL_MULTI
  http-push: refactor request url creation

15 years agoMerge branch 'gt/utf8-width'
Junio C Hamano [Fri, 6 Feb 2009 03:40:35 +0000 (19:40 -0800)]
Merge branch 'gt/utf8-width'

* gt/utf8-width:
  builtin-blame.c: Use utf8_strwidth for author's names
  utf8: add utf8_strwidth()

15 years agoMerge branch 'jk/head-symref'
Junio C Hamano [Fri, 6 Feb 2009 03:40:35 +0000 (19:40 -0800)]
Merge branch 'jk/head-symref'

* jk/head-symref:
  symbolic ref: refuse non-ref targets in HEAD
  validate_headref: tighten ref-matching to just branches

15 years agoMerge branch 'cb/mergetool'
Junio C Hamano [Fri, 6 Feb 2009 03:40:35 +0000 (19:40 -0800)]
Merge branch 'cb/mergetool'

* cb/mergetool:
  mergetool: fix running mergetool in sub-directories
  mergetool: Add a test for running mergetool in a sub-directory
  mergetool: respect autocrlf by using checkout-index

15 years agoMerge branch 'maint'
Junio C Hamano [Fri, 6 Feb 2009 03:40:25 +0000 (19:40 -0800)]
Merge branch 'maint'

* maint:
  Fixed broken git help -w when installing from RPM

15 years agoMerge branch 'maint-1.6.0' into maint
Junio C Hamano [Fri, 6 Feb 2009 03:38:58 +0000 (19:38 -0800)]
Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
  Fixed broken git help -w when installing from RPM

15 years agoMerge branch 'jc/maint-apply-fix' into maint
Junio C Hamano [Fri, 6 Feb 2009 02:06:11 +0000 (18:06 -0800)]
Merge branch 'jc/maint-apply-fix' into maint

* jc/maint-apply-fix:
  builtin-apply.c: do not set bogus mode in check_preimage() for deleted path

15 years agoMerge branch 'am/maint-push-doc' into maint
Junio C Hamano [Fri, 6 Feb 2009 02:06:03 +0000 (18:06 -0800)]
Merge branch 'am/maint-push-doc' into maint

* am/maint-push-doc:
  Documentation: rework src/dst description in git push
  Documentation: more git push examples
  Documentation: simplify refspec format description

15 years agoMerge branch 'sg/maint-gitdir-in-subdir' into maint
Junio C Hamano [Fri, 6 Feb 2009 02:05:43 +0000 (18:05 -0800)]
Merge branch 'sg/maint-gitdir-in-subdir' into maint

* sg/maint-gitdir-in-subdir:
  Fix gitdir detection when in subdir of gitdir

15 years agoMerge branch 'lt/maint-wrap-zlib' into maint
Junio C Hamano [Fri, 6 Feb 2009 02:01:00 +0000 (18:01 -0800)]
Merge branch 'lt/maint-wrap-zlib' into maint

* lt/maint-wrap-zlib:
  Wrap inflate and other zlib routines for better error reporting

Conflicts:
http-push.c
http-walker.c
sha1_file.c

15 years agoMerge branch 'jc/maint-split-diff-metainfo' into maint
Junio C Hamano [Fri, 6 Feb 2009 01:54:17 +0000 (17:54 -0800)]
Merge branch 'jc/maint-split-diff-metainfo' into maint

* jc/maint-split-diff-metainfo:
  diff.c: output correct index lines for a split diff

15 years agoMerge branch 'js/maint-all-implies-HEAD' into maint
Junio C Hamano [Fri, 6 Feb 2009 01:54:12 +0000 (17:54 -0800)]
Merge branch 'js/maint-all-implies-HEAD' into maint

* js/maint-all-implies-HEAD:
  bundle: allow the same ref to be given more than once
  revision walker: include a detached HEAD in --all

15 years agoMerge branch 'kc/maint-diff-bwi-fix' into maint
Junio C Hamano [Fri, 6 Feb 2009 01:52:22 +0000 (17:52 -0800)]
Merge branch 'kc/maint-diff-bwi-fix' into maint

* kc/maint-diff-bwi-fix:
  Fix combined use of whitespace ignore options to diff
  test more combinations of ignore-whitespace options to diff

15 years agofilter-branch: do not consider diverging submodules a 'dirty worktree'
Johannes Schindelin [Thu, 5 Feb 2009 18:19:33 +0000 (19:19 +0100)]
filter-branch: do not consider diverging submodules a 'dirty worktree'

At the end of filter-branch in a non-bare repository, the work tree is
updated with "read-tree -m -u HEAD", to carry the change forward in case
the current branch was rewritten.  In order to avoid losing any local
change during this step, filter-branch refuses to work when there are
local changes in the work tree.

This "read-tree -m -u HEAD" operation does not affect what commit is
checked out in a submodule (iow, it does not touch .git/HEAD in a
submodule checkout), and checking if there is any local change to the
submodule is not useful.

Staged submodules _are_ considered to be 'dirty', however,  as the
"read-tree -m -u HEAD" could result in loss of staged information
otherwise.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoadd -p: print errors in separate color
Thomas Rast [Thu, 5 Feb 2009 08:28:27 +0000 (09:28 +0100)]
add -p: print errors in separate color

Print interaction error messages in color.interactive.error, which
defaults to the value of color.interactive.help.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoadd -p: prompt for single characters
Thomas Rast [Thu, 5 Feb 2009 08:28:26 +0000 (09:28 +0100)]
add -p: prompt for single characters

Use Term::ReadKey, if available and enabled with interactive.singlekey,
to let the user answer add -p's prompts by pressing a single key.  We're
not doing the same in the main 'add -i' interface because file selection
etc. may expect several characters.

Two commands take an argument: 'g' can easily cope since it'll just
offer a choice of chunks.  '/' now (unconditionally, even without
readkey) offers a chance to enter a regex if none was given.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMakefile: minor improvements for Mac OS X (Darwin)
Jay Soffian [Thu, 5 Feb 2009 06:09:08 +0000 (01:09 -0500)]
Makefile: minor improvements for Mac OS X (Darwin)

1) Instead of requesting OLD_ICONV on all Mac OS X versions except for 10.5
(which will break when 10.6 is released), exlicitly request it for versions
older than 10.5.

2) NO_STRLCPY is not needed since Mac OS X 10.2. Noticed by Benjamin Kramer.

Note that uname -r returns the underlying Darwin version, which can be mapped
to Mac OS X version at http://www.opensource.apple.com/darwinsource/

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>