git
14 years agoMerge branch 'jn/gitweb-blame' into pu
Shawn O. Pearce [Tue, 29 Sep 2009 17:49:22 +0000 (10:49 -0700)] 
Merge branch 'jn/gitweb-blame' into pu

* jn/gitweb-blame:
  gitweb: Minify gitweb.js if JSMIN is defined
  gitweb: Create links leading to 'blame_incremental' using JavaScript

14 years agoMerge branch 'jh/notes' into pu
Shawn O. Pearce [Tue, 29 Sep 2009 17:48:49 +0000 (10:48 -0700)] 
Merge branch 'jh/notes' into pu

* jh/notes:
  Selftests verifying semantics when loading notes trees with various fanouts
  Teach the notes lookup code to parse notes trees with various fanout schemes
  notes.[ch] fixup: avoid old-style declaration
  Teach notes code to free its internal data structures on request.
  Add '%N'-format for pretty-printing commit notes
  Add flags to get_commit_notes() to control the format of the note string
  t3302-notes-index-expensive: Speed up create_repo()
  fast-import: Add support for importing commit notes
  Teach "-m <msg>" and "-F <file>" to "git notes edit"
  Add an expensive test for git-notes
  Speed up git notes lookup
  Add a script to edit/inspect notes
  Introduce commit notes

Conflicts:
Documentation/pretty-formats.txt

14 years agoMerge branch 'ne/rev-cache' into pu
Shawn O. Pearce [Tue, 29 Sep 2009 17:48:19 +0000 (10:48 -0700)] 
Merge branch 'ne/rev-cache' into pu

* ne/rev-cache:
  support for path name caching in rev-cache
  full integration of rev-cache into git, completed test suite
  administrative functions for rev-cache, start of integration into git
  support for non-commit object caching in rev-cache
  basic revision cache system, no integration or features
  man page and technical discussion for rev-cache

14 years agoMerge branch 'jl/submodule-add-noname' into pu
Shawn O. Pearce [Tue, 29 Sep 2009 17:46:43 +0000 (10:46 -0700)] 
Merge branch 'jl/submodule-add-noname' into pu

* jl/submodule-add-noname:
  git submodule add: make the <path> parameter optional

14 years agoMerge branch 'jg/log-format-body-indent' into pu
Shawn O. Pearce [Tue, 29 Sep 2009 17:46:35 +0000 (10:46 -0700)] 
Merge branch 'jg/log-format-body-indent' into pu

* jg/log-format-body-indent:
  [NEEDSWORK: tests] git-log --format: Add %B tag with %B(x) option

14 years agoMerge branch 'jp/fetch-tag-match' into pu
Shawn O. Pearce [Tue, 29 Sep 2009 17:46:23 +0000 (10:46 -0700)] 
Merge branch 'jp/fetch-tag-match' into pu

* jp/fetch-tag-match:
  fetch: Speed up fetch by rewriting find_non_local_tags

14 years agoMerge branch 'jc/fix-tree-walk' into pu
Shawn O. Pearce [Tue, 29 Sep 2009 17:46:10 +0000 (10:46 -0700)] 
Merge branch 'jc/fix-tree-walk' into pu

* jc/fix-tree-walk:
  read-tree --debug-unpack
  unpack-trees.c: look ahead in the index
  unpack-trees.c: prepare for looking ahead in the index
  traverse_trees(): handle D/F conflict case sanely
  more D/F conflict tests
  tests: move convenience regexp to match object names to test-lib.sh
  unpack_callback(): use unpack_failed() consistently
  unpack-trees: typofix
  diff-lib.c: fix misleading comments on oneway_diff()

14 years agoMerge branch 'jk/reflog-date' into next spearce/next
Shawn O. Pearce [Tue, 29 Sep 2009 17:20:22 +0000 (10:20 -0700)] 
Merge branch 'jk/reflog-date' into next

* jk/reflog-date:
  improve reflog date/number heuristic

14 years agoMerge branch 'mr/instaweb-cgid' into next
Shawn O. Pearce [Tue, 29 Sep 2009 17:20:15 +0000 (10:20 -0700)] 
Merge branch 'mr/instaweb-cgid' into next

* mr/instaweb-cgid:
  instaweb: support mod_cgid for apache2

14 years agoMerge branch 'master' into next
Shawn O. Pearce [Tue, 29 Sep 2009 17:07:05 +0000 (10:07 -0700)] 
Merge branch 'master' into next

* master:
  builtin-mailinfo.c: check error status from rewind and ftruncate
  Make just opening the generated MSVC solution file not modify it
  Make generated MSVC solution file open from Windows Explorer
  generators/vcproj.pm: remove UNICODE from build
  typo fix: Directory `...' exist, ...: s/exist/exists/
  Documentation/git-gc.txt: default --aggressive window is 250, not 10
  Correct minor typo in post-receive hook template
  git branch -D: give a better error message when lockfile creation fails
  parse-opt: ignore negation of OPT_NONEG for ambiguity checks
  make 'git clone' ask the remote only for objects it cares about

14 years agosupport for path name caching in rev-cache
Nick Edelen [Mon, 7 Sep 2009 14:11:06 +0000 (16:11 +0200)] 
support for path name caching in rev-cache

An update to caching mechanism, allowing path names to be cached for blob and
tree objects.  A list of names appearing in each cache slice is appended to the
end of the slice, which is referenced by variable-sized indexes per entry.
This allows pack-objects to more intelligently schedule unpacked/poorly packed
object, and enables proper duplication of rev-list's behaivor.

Signed-off-by: Nick Edelen <sirnot@gmail.com>
14 years agofull integration of rev-cache into git, completed test suite
Nick Edelen [Mon, 7 Sep 2009 14:11:02 +0000 (16:11 +0200)] 
full integration of rev-cache into git, completed test suite

This last patch provides a working integration of rev-cache into the revision
walker, along with some touch-ups:
 - integration into revision walker and list-objects
 - tweak of object generation
 - more fluid handling of damaged cache slices
 - numerous tests for both features from the previous patch, and the
integration's integrity

'Integration' is rather broad -- a more detailed description follows for each
aspect:
 - rev-cache
the traversal mechanism is updated to handle many of the non-prune options
rev-list does (date limiting, slop-handling, etc.), and is adjusted to allow
for non-fatal cache-traversal failures.

 - revision walker
both limited and unlimited traversal attempt to use the cache when possible,
smoothly falling back if it's not.

 - list-objects
object listing does not recurse into cached trees, and has been adjusted to
guarantee commit-tag-tree-blob ordering.

Signed-off-by: Nick Edelen <sirnot@gmail.com>
14 years agoadministrative functions for rev-cache, start of integration into git
Nick Edelen [Mon, 7 Sep 2009 14:10:56 +0000 (16:10 +0200)] 
administrative functions for rev-cache, start of integration into git

This patch, fourth, contains miscellaneous (maintenance) features:
 - support for cache slice fusion, index regeneration and object size caching
 - non-commit object generation refactored
 - porcelain updated to support feature additions

The beginnings of integration into git are present in this patch, mainly
centered on caching object size; the object generation is refactored to more
elegantly exploit this.  Fusion allows smaller (incremental) slices to be
coagulated into a larger slice, reducing overhead, while index regeneration
enables repair or cleaning of the cache index.

Note that tests for these features are included in the following patch, as they
take advantage of the rev-cache's integration into the revision walker.

Signed-off-by: Nick Edelen <sirnot@gmail.com>
14 years agosupport for non-commit object caching in rev-cache
Nick Edelen [Mon, 7 Sep 2009 14:10:52 +0000 (16:10 +0200)] 
support for non-commit object caching in rev-cache

Summarized, this third patch contains:
 - support for non-commit object caching
 - expansion of porcelain to accomodate non-commit objects
 - appropriate tests

Objects are stored relative to the commit in which they were introduced --
commits are 'diffed' against their parents.  This will eliminate the need for
tree recursion in cached commits (significantly reducing I/O), and potentially
be useful to external applications.

Signed-off-by: Nick Edelen <sirnot@gmail.com>
14 years agobasic revision cache system, no integration or features
Nick Edelen [Mon, 7 Sep 2009 14:10:47 +0000 (16:10 +0200)] 
basic revision cache system, no integration or features

Second in the revision cache series, this particular patch provides:
 - minimal API: caching only commit topo data
 - minimal porcelain: add and walk cache slices
 - appropriate tests

Signed-off-by: Nick Edelen <sirnot@gmail.com>
14 years agoman page and technical discussion for rev-cache
Nick Edelen [Mon, 7 Sep 2009 14:10:43 +0000 (16:10 +0200)] 
man page and technical discussion for rev-cache

Before any code is introduced the full documentation is put forth.  This
provides a man page for the porcelain, and a technical doc in technical/.  The
latter describes the API, and discusses rev-cache's design, file format and
mechanics.

Signed-off-by: Nick Edelen <sirnot@gmail.com>
14 years agoinstaweb: support mod_cgid for apache2
Mark Rada [Sat, 26 Sep 2009 18:12:32 +0000 (14:12 -0400)] 
instaweb: support mod_cgid for apache2

Some people have mod_cgid instead of mod_cgi, most likely as a result of
choosing a threaded MPM.

In cases where the user has both modules, mod_cgi will be preferred in
order to maintain a simpler setup.

This patch also causes instaweb to print a message and die in cases
where there is no module that instaweb knows how to handle.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agogit submodule add: make the <path> parameter optional
Jens Lehmann [Tue, 22 Sep 2009 15:10:12 +0000 (17:10 +0200)] 
git submodule add: make the <path> parameter optional

When <path> is not given, use the "humanish" part of the source repository
instead.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofetch: Speed up fetch by rewriting find_non_local_tags
Julian Phillips [Thu, 17 Sep 2009 07:33:19 +0000 (08:33 +0100)] 
fetch: Speed up fetch by rewriting find_non_local_tags

When trying to get a list of remote tags to see if we need to fetch
any we were doing a linear search for the matching tag ref for the
tag^{} commit entries.  This proves to be incredibly slow for large
numbers of tags.  Rewrite the function so that we build up a
string_list of refs to fetch and then process that instead.

As an extreme example, for a repository with 50000 tags (and just a
single commit on a single branch), a fetch that does nothing goes from
~1m50s to ~4.1s.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years ago[NEEDSWORK: tests] git-log --format: Add %B tag with %B(x) option
Johannes Gilger [Sat, 19 Sep 2009 09:58:24 +0000 (11:58 +0200)] 
[NEEDSWORK: tests] git-log --format: Add %B tag with %B(x) option

Since one can simply use spaces to indent any other --pretty field we
should have an option to do that with the body too.

Also the %B flag strips the trailing newlines, to enable more compact
display.

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoimprove reflog date/number heuristic
Jeff King [Thu, 24 Sep 2009 08:28:15 +0000 (04:28 -0400)] 
improve reflog date/number heuristic

When we show a reflog, we have two ways of naming the entry:
by sequence number (e.g., HEAD@{0}) or by date (e.g.,
HEAD@{10 minutes ago}). There is no explicit option to set
one or the other, but we guess based on whether or not the
user has provided us with a date format, showing them the
date version if they have done so, and the sequence number
otherwise.

This usually made sense if the use did something like "git
log -g --date=relative". However, it didn't make much sense
if the user set the date format using the log.date config
variable; in that case, all of their reflogs would end up as
dates.

This patch records the source of the date format and only
triggers the date-based view if --date= was given on the
command line.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoread-tree --debug-unpack
Junio C Hamano [Mon, 14 Sep 2009 09:22:00 +0000 (02:22 -0700)] 
read-tree --debug-unpack

Debugging patch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agounpack-trees.c: look ahead in the index
Junio C Hamano [Sun, 20 Sep 2009 07:03:39 +0000 (00:03 -0700)] 
unpack-trees.c: look ahead in the index

This makes the traversal of index be in sync with the tree traversal.
When unpack_callback() is fed a set of tree entries from trees, it
inspects the name of the entry and checks if the an index entry with
the same name could be hiding behind the current index entry, and

 (1) if the name appears in the index as a leaf node, it is also
     fed to the n_way_merge() callback function;

 (2) if the name is a directory in the index, i.e. there are entries in
     that are underneath it, then nothing is fed to the n_way_merge()
     callback function;

 (3) otherwise, if the name comes before the first eligible entry in the
     index, the index entry is first unpacked alone.

When traverse_trees_recursive() descends into a subdirectory, the
cache_bottom pointer is moved to walk index entries within that directory.

All of these are omitted for diff-index, which does not even want to be
fed an index entry and a tree entry with D/F conflicts.

This fixes 3-way read-tree and exposes a bug in other parts of the system
in t6035, test #5.  The test prepares these three trees:

 O = HEAD^
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    a/b-2/c/d
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    a/b/c/d
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    a/x

 A = HEAD
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    a/b-2/c/d
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    a/b/c/d
    100644 blob 587be6b4c3f93f93c489c0111bba5596147a26cb    a/x

 B = master
    120000 blob a36b77384451ea1de7bd340ffca868249626bc52    a/b
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    a/b-2/c/d
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    a/x

With a clean index that matches HEAD, running

    git read-tree -m -u --aggressive $O $A $B

now yields

    120000 a36b77384451ea1de7bd340ffca868249626bc52 3       a/b
    100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0       a/b-2/c/d
    100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 1       a/b/c/d
    100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 2       a/b/c/d
    100644 587be6b4c3f93f93c489c0111bba5596147a26cb 0       a/x

which is correct.  "master" created "a/b" symlink that did not exist,
and removed "a/b/c/d" while HEAD did not do touch either path.

Before this series, read-tree did not notice the situation and resolved
addition of "a/b" and removal of "a/b/c/d" independently.  If A = HEAD had
another path "a/b/c/e" added, this merge should conflict but instead it
silently resolved "a/b" and then immediately overwrote it to add
"a/b/c/e", which was quite bogus.

Tests in t1012 start to work with this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agounpack-trees.c: prepare for looking ahead in the index
Junio C Hamano [Sun, 20 Sep 2009 00:50:04 +0000 (17:50 -0700)] 
unpack-trees.c: prepare for looking ahead in the index

This prepares but does not yet implement a look-ahead in the index entries
when traverse-trees.c decides to give us tree entries in an order that
does not match what is in the index.

A case where a look-ahead in the index is necessary happens when merging
branch B into branch A while the index matches the current branch A, using
a tree O as their common ancestor, and these three trees looks like this:

   O        A       B
   t                t
   t-i      t-i     t-i
   t-j      t-j
            t/1
            t/2

The traverse_trees() function gets "t", "t-i" and "t" from trees O, A and
B first, and notices that A may have a matching "t" behind "t-i" and "t-j"
(indeed it does), and tells A to give that entry instead.  After unpacking
blob "t" from tree B (as it hasn't changed since O in B and A removed it,
it will result in its removal), it descends into directory "t/".

The side that walked index in parallel to the tree traversal used to be
implemented with one pointer, o->pos, that points at the next index entry
to be processed.  When this happens, the pointer o->pos still points at
"t-i" that is the first entry.  We should be able to skip "t-i" and "t-j"
and locate "t/1" from the index while the recursive invocation of
traverse_trees() walks and match entries found there, and later come back
to process "t-i".

While that look-ahead is not implemented yet, this adds a flag bit,
CE_UNPACKED, to mark the entries in the index that has already been
processed.  o->pos pointer has been renamed to o->cache_bottom and it
points at the first entry that may still need to be processed.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotraverse_trees(): handle D/F conflict case sanely
Junio C Hamano [Sat, 19 Sep 2009 21:07:14 +0000 (14:07 -0700)] 
traverse_trees(): handle D/F conflict case sanely

traverse_trees() is supposed to call its callback with all the matching
entries from the given trees.  The current algorithm keeps a pointer to
each of the tree being traversed, and feeds the entry with the earliest
name to the callback.

This breaks down if the trees being traversed looks like this:

    A    B
    t-1  t
    t-2  u
    t/a  v

When we are currently looking at an entry "t-1" in tree A, and tree B has
returned "t", feeding "t" from the B and not feeding anything from A, only
because "t-1" sorts later than "t", will miss an entry for a subtree "t"
behind the current entry in tree A.

This introduces extended_entry_extract() helper function that gives what
name is expected from the tree, and implements a mechanism to look-ahead
in the tree object using it, to make sure such a case is handled sanely.
Traversal in tree A in the above example will first return "t" to match
that of B, and then the next request for an entry to A then returns "t-1".

This roughly corresponds to what Linus's "prepare for one-entry lookahead"
wanted to do, but because this does implement look ahead, t6035 and one more
test in t1012 reveal that the approach would not work without adjusting the
side that walks the index in unpack_trees() as well.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomore D/F conflict tests
Junio C Hamano [Sun, 20 Sep 2009 18:49:56 +0000 (11:49 -0700)] 
more D/F conflict tests

Before starting to muck with this code, let's expose the current
breakages that we intend to fix.

14 years agotests: move convenience regexp to match object names to test-lib.sh
Junio C Hamano [Sun, 20 Sep 2009 18:10:14 +0000 (11:10 -0700)] 
tests: move convenience regexp to match object names to test-lib.sh

14 years agounpack_callback(): use unpack_failed() consistently
Junio C Hamano [Sat, 19 Sep 2009 23:36:45 +0000 (16:36 -0700)] 
unpack_callback(): use unpack_failed() consistently

When unpack_index_entry() failed, consistently call unpack_failed(),
instead of silently returning -1.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agounpack-trees: typofix
Junio C Hamano [Sun, 20 Sep 2009 00:26:16 +0000 (17:26 -0700)] 
unpack-trees: typofix

I am not good at subject-verb concordance.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff-lib.c: fix misleading comments on oneway_diff()
Junio C Hamano [Fri, 18 Sep 2009 05:12:17 +0000 (22:12 -0700)] 
diff-lib.c: fix misleading comments on oneway_diff()

20a16eb (unpack_trees(): fix diff-index regression., 2008-03-10) adjusted
diff-index to the new world order since 34110cd (Make 'unpack_trees()'
have a separate source and destination index, 2008-03-06).  Callbacks are
expected to return anything non-negative as "success", and instead of
reporting how many index entries they have processed, they are expected to
advance o->pos themselves.  The code did so, but a stale comment was left
behind.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin-mailinfo.c: check error status from rewind and ftruncate spearce/master
Junio C Hamano [Tue, 29 Sep 2009 06:40:08 +0000 (23:40 -0700)] 
builtin-mailinfo.c: check error status from rewind and ftruncate

A recent "cut at scissors" implementation rewinds and truncates
the output file to store the message when it sees a scissors mark,
but it did not check if these library calls succeeded.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
[sp: Use fseek as rewind returns void]
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoMake just opening the generated MSVC solution file not modify it
Sebastian Schuberth [Mon, 28 Sep 2009 11:34:21 +0000 (13:34 +0200)] 
Make just opening the generated MSVC solution file not modify it

The format of the generated MSVC solution file is fixed in a way that
just opening it in Visual Studio and immediately closing it again
without performing any modifications does not trigger a prompt to save
the solution file. This behavior was caused by several minor
incompatibilities between the generated file and what Visual Studio
2008 expected, so Visual Studio transparently fixed the file format,
marking it internally as modified.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Acked-by: Marius Storm-Olsen <mstormo@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoMake generated MSVC solution file open from Windows Explorer
Sebastian Schuberth [Mon, 28 Sep 2009 11:34:20 +0000 (13:34 +0200)] 
Make generated MSVC solution file open from Windows Explorer

In order to be able to open the generated solution file by double-
clicking it in Windows Explorer, all project files need to use DOS
line-endings and a comment about the Visual Studio version needs to
be added to the header of the solution file. This also fixes the icon
that is displayed for the solution file in Windows Explorer.
Note that opening the solution file from a running instance of Visual
Studio already worked before.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Acked-by: Marius Storm-Olsen <mstormo@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agogenerators/vcproj.pm: remove UNICODE from build
Michael Wookey [Mon, 28 Sep 2009 10:46:52 +0000 (20:46 +1000)] 
generators/vcproj.pm: remove UNICODE from build

Defining UNICODE for MSVC IDE builds results in certain Win32 WIDE
API's receiving ANSI strings. The result of which is an invalid use
of the API and will end in either data corruption or an application
crash.

Prevent the use of WIDE API's when building with the MSVC IDE for
compatibility with msysGit.

Signed-off-by: Michael Wookey <michaelwookey@gmail.com>
Acked-by: Marius Storm-Olsen <mstormo@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agotypo fix: Directory `...' exist, ...: s/exist/exists/
Jim Meyering [Tue, 29 Sep 2009 05:42:25 +0000 (07:42 +0200)] 
typo fix: Directory `...' exist, ...: s/exist/exists/

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoDocumentation/git-gc.txt: default --aggressive window is 250, not 10
Brandon Casey [Mon, 28 Sep 2009 14:56:00 +0000 (09:56 -0500)] 
Documentation/git-gc.txt: default --aggressive window is 250, not 10

The default --aggressive window has been 250 since 1c192f34 "gc
--aggressive: make it really aggressive", released in git v1.6.3.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoCorrect minor typo in post-receive hook template
Frederik Schwarzer [Mon, 28 Sep 2009 08:25:55 +0000 (10:25 +0200)] 
Correct minor typo in post-receive hook template

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agogit branch -D: give a better error message when lockfile creation fails
Miklos Vajna [Sat, 26 Sep 2009 23:15:09 +0000 (01:15 +0200)] 
git branch -D: give a better error message when lockfile creation fails

Previously the old error message just told the user that it was not
possible to delete the ref from the packed-refs file. Give instructions
on how to resolve the problem.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoparse-opt: ignore negation of OPT_NONEG for ambiguity checks
Andreas Schwab [Fri, 25 Sep 2009 18:44:44 +0000 (20:44 +0200)] 
parse-opt: ignore negation of OPT_NONEG for ambiguity checks

parse_long_opt always matches both --opt and --no-opt for any option
"opt", and only get_value checks whether --no-opt is actually valid.
Since the options for git branch contains both "no-merged" and "merged"
there are two matches for --no-merge, but no exact match.  With this
patch the negation of a NONEG option is rejected earlier, but it changes
the error message from "option `no-opt' isn't available" to "unknown
option `no-opt'".

[jk: added test]

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agomake 'git clone' ask the remote only for objects it cares about
Nicolas Pitre [Sat, 26 Sep 2009 03:54:42 +0000 (23:54 -0400)] 
make 'git clone' ask the remote only for objects it cares about

Current behavior of 'git clone' when not using --mirror is to fetch
everything from the peer, and then filter out unwanted refs just before
writing them out to the cloned repository.  This may become highly
inefficient if the peer has an unusual ref namespace, or if it simply
has "remotes" refs of its own, and those locally unwanted refs are
connecting to a large set of objects which becomes unreferenced as soon
as they are fetched.

Let's filter out those unwanted refs from the peer _before_ asking it
what refs we want to fetch instead, which is the most logical thing to
do anyway.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoMerge branch 'ch/am-header' into next
Shawn O. Pearce [Fri, 25 Sep 2009 23:46:43 +0000 (16:46 -0700)] 
Merge branch 'ch/am-header' into next

* ch/am-header:
  git-am: force egrep to use correct characters set
  git-am: fixed patch_format detection according to RFC2822

14 years agoMerge branch 'master' into next
Shawn O. Pearce [Fri, 25 Sep 2009 23:46:21 +0000 (16:46 -0700)] 
Merge branch 'master' into next

* master:
  send-email: fix obscure error when encryption=tls and smtp cannot connect
  bash: teach 'git checkout' options
  perl/Makefile.PL: detect MakeMaker versions incompatible with DESTDIR

14 years agogit-am: force egrep to use correct characters set
Christian Himpel [Fri, 25 Sep 2009 16:43:20 +0000 (18:43 +0200)] 
git-am: force egrep to use correct characters set

According to egrep(1) the US-ASCII table is used when LC_ALL=C is set.
We do not rely here on the LC_ALL value we get from the environment.

Signed-off-by: Christian Himpel <chressie@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agogit-am: fixed patch_format detection according to RFC2822
Christian Himpel [Fri, 25 Sep 2009 15:14:31 +0000 (17:14 +0200)] 
git-am: fixed patch_format detection according to RFC2822

RFC2822 specifies in paragraph 3.6.8, that optional header fields are
made up of any printable US-ASCII character except ' ' (space) and ':'
(colon).

The pattern for the egrep command is changed to match all of these
characters.

Signed-off-by: Christian Himpel <chressie@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agosend-email: fix obscure error when encryption=tls and smtp cannot connect
Yakov Lerner [Fri, 25 Sep 2009 22:10:21 +0000 (15:10 -0700)] 
send-email: fix obscure error when encryption=tls and smtp cannot connect

When encryption=tls and we cannot connect to the SMTP server,
git-send-email was printing an obtuse perl error:

  Can't call method "command" on an undefined value
  at git-send-email line 927.

This can occur when smtp host or port is misspelled, or the network
is down, and encryption has been set to tls.

Instead we expect some familiar "Cannot connect to SERVER:PORT"
message.  Fix it to print normal "smtp can't connect" diagnostics.

Signed-off-by: Yakov Lerner <iler.ml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agobash: teach 'git checkout' options
SZEDER Gábor [Thu, 24 Sep 2009 12:23:15 +0000 (14:23 +0200)] 
bash: teach 'git checkout' options

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoperl/Makefile.PL: detect MakeMaker versions incompatible with DESTDIR
Brandon Casey [Thu, 24 Sep 2009 18:21:03 +0000 (13:21 -0500)] 
perl/Makefile.PL: detect MakeMaker versions incompatible with DESTDIR

It appears that ExtUtils::MakeMaker versions older than 6.11 do not
implement the DESTDIR mechanism.  So add a test to the generated perl.mak
to detect when DESTDIR is used along with a too old ExtUtils::MakeMaker and
abort with a message suggesting the use of NO_PERL_MAKEMAKER.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoMerge branch 'master' into next
Junio C Hamano [Wed, 23 Sep 2009 05:31:26 +0000 (22:31 -0700)] 
Merge branch 'master' into next

* master:
  pull: Clarify "helpful" message for another corner case
  Update "describe" documentation to match reality
  bash: teach 'git reset --patch'
  bash: update 'git stash' completion
  bash: rename __git_find_subcommand() to __git_find_on_cmdline()
  pay attention to DESTDIR when building with NO_PERL_MAKEMAKER
  pre-commit.sample: add comment re tr portability; fix grammar
  Update Release Notes to 1.6.5

14 years agopull: Clarify "helpful" message for another corner case v1.6.5-rc2
Junio C Hamano [Sun, 13 Sep 2009 20:38:48 +0000 (13:38 -0700)] 
pull: Clarify "helpful" message for another corner case

When the remote branch we asked for merging did not exist in the set of
fetched refs, we unconditionally hinted that it was because of lack of
configuration.  It is not necessarily so, and risks sending users for a
wild goose chase.

Make sure to check if that is indeed the case before telling a wild guess
to the user.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate "describe" documentation to match reality
Thiago Farina [Tue, 22 Sep 2009 23:48:06 +0000 (19:48 -0400)] 
Update "describe" documentation to match reality

A sample "git describe -h" did not match what the program actually says.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: teach 'git reset --patch'
SZEDER Gábor [Tue, 15 Sep 2009 10:21:45 +0000 (12:21 +0200)] 
bash: teach 'git reset --patch'

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: update 'git stash' completion
SZEDER Gábor [Tue, 15 Sep 2009 10:21:44 +0000 (12:21 +0200)] 
bash: update 'git stash' completion

This update adds 'git stash (apply|pop) --quiet' and all options known
to 'git stash save', and handles the DWIMery from 3c2eb80f (stash:
simplify defaulting to "save" and reject unknown options, 2009-08-18).
Care is taken to avoid offering subcommands in the DWIM case.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: rename __git_find_subcommand() to __git_find_on_cmdline()
SZEDER Gábor [Tue, 15 Sep 2009 10:21:43 +0000 (12:21 +0200)] 
bash: rename __git_find_subcommand() to __git_find_on_cmdline()

__git_find_subcommand() was originally meant to check whether
subcommands are already present on the command line.  But the code is
general enough to be used for checking the presence of command line
options as well, and the next commit will use it for that purpose, so
let's give it a more general name.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopay attention to DESTDIR when building with NO_PERL_MAKEMAKER
Junio C Hamano [Mon, 21 Sep 2009 19:44:05 +0000 (12:44 -0700)] 
pay attention to DESTDIR when building with NO_PERL_MAKEMAKER

Building with prefix=/some/where and temporarily installing it to
elsewhere for tar'ing up is done with:

    make prefix=/some/where
    make prefix=/some/where DESTDIR=/else/where install

Make handcrafted perl/perl.mak without NO_PERL_MAKEMAKER honour DESTDIR.

Ancient ExtUtils::MakeMaker (pre 6.11?) has the same issue, but recent
versions of Perl ships with at leat 6.17; this patch does not address that
issue.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopre-commit.sample: add comment re tr portability; fix grammar
Jim Meyering [Mon, 21 Sep 2009 11:00:34 +0000 (13:00 +0200)] 
pre-commit.sample: add comment re tr portability; fix grammar

Add a comment explaining why square brackets around a tr range
are not only ok, but actually required in this case.
Correct spelling and grammar.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate Release Notes to 1.6.5
Junio C Hamano [Tue, 22 Sep 2009 01:14:12 +0000 (18:14 -0700)] 
Update Release Notes to 1.6.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Mon, 21 Sep 2009 07:44:06 +0000 (00:44 -0700)] 
Merge branch 'master' into next

* master:
  test-genrandom: ensure stdout is set to _O_BINARY on Windows
  gitk: Work around leftover temporary save file
  gitk: Show diff of commits at end of compare-commits output
  gitk: Update Swedish translation (280t0f0u)

14 years agotest-genrandom: ensure stdout is set to _O_BINARY on Windows
Johannes Sixt [Mon, 21 Sep 2009 07:34:58 +0000 (09:34 +0200)] 
test-genrandom: ensure stdout is set to _O_BINARY on Windows

Commit a6ca8c62 (Set _O_BINARY as default fmode for both MinGW and MSVC)
removed the definition of _CRT_fmode from mingw.c. Before this commit,
since test-genrandom is linked against libgit.a, the MinGW process
initialization code would pick up that definition of _CRT_fmode, which was
initialized to _O_BINARY. After this commit, however, text mode is used
for std(in|out|err) because it is the default in absence of _CRT_fmode.
In order to fix that, we must use git-compat-util.h, which overrides
main() to set the mode to binary.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Mon, 21 Sep 2009 06:47:52 +0000 (23:47 -0700)] 
Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
  gitk: Work around leftover temporary save file
  gitk: Show diff of commits at end of compare-commits output
  gitk: Update Swedish translation (280t0f0u)

14 years agogitk: Work around leftover temporary save file
Pat Thoyts [Tue, 15 Sep 2009 09:26:30 +0000 (10:26 +0100)] 
gitk: Work around leftover temporary save file

If a file exists and is hidden on Windows the Tcl open command will
fail as the attributes provided in the CREAT call fail to match those
of the existing file.  Forcing removal of the temporary file before we
begin solves any problems caused by previous failures to save the
application settings.  An alternative would be to remove the hidden
attribute before calling 'open'.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
14 years agoMerge branch 'master' into next
Junio C Hamano [Sun, 20 Sep 2009 19:14:30 +0000 (12:14 -0700)] 
Merge branch 'master' into next

* master:
  push: Correctly initialize nonfastforward in transport_push.

14 years agoMerge branch 'maint'
Junio C Hamano [Sun, 20 Sep 2009 19:13:47 +0000 (12:13 -0700)] 
Merge branch 'maint'

* maint:
  push: Correctly initialize nonfastforward in transport_push.

14 years agopush: Correctly initialize nonfastforward in transport_push. spearce/maint
Matthieu Moy [Sun, 20 Sep 2009 17:33:20 +0000 (19:33 +0200)] 
push: Correctly initialize nonfastforward in transport_push.

The variable is assigned unconditionally in print_push_status, but
print_push_status is not reached by all codepaths. In particular, this
fixes a bug where "git push ... nonexisting-branch" was complaining about
non-fast forward.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Sat, 19 Sep 2009 06:36:48 +0000 (23:36 -0700)] 
Merge branch 'master' into next

* master:
  Tag GIT_VERSION when Git is built with MSVC
  Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)
  Add README for MSVC build
  Add MSVC to Makefile
  Define strncasecmp and ftruncate for MSVC
  Make usage of windows.h lean and mean
  Add platform files for porting to MSVC
  Add MinGW header files to build git with MSVC
  Add empty header files for MSVC port
  Test for WIN32 instead of __MINGW32_
  Fix __stdcall placement and function prototype
  Set _O_BINARY as default fmode for both MinGW and MSVC
  Change regerror() declaration from K&R style to ANSI C (C89)
  Add include guards to compat/win32.h
  Avoid declaration after statement
  pack-objects: remove SP at the end of usage string
  Update the usage bundle string.
  cvs: initialize empty password

14 years agoTag GIT_VERSION when Git is built with MSVC
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:31 +0000 (10:20 +0200)] 
Tag GIT_VERSION when Git is built with MSVC

This may help us debug issues on Windows, as we now can build Git
natively on Windows with both MinGW and MSVC.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd scripts to generate projects for other buildsystems (MSVC vcproj, QMake)
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:30 +0000 (10:20 +0200)] 
Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)

These scripts generate projects for the MSVC IDE (.vcproj files) or
QMake (.pro files), based on the output of a 'make -n MSVC=1 V=1' run.

This enables us to simply do the necesarry changes in the Makefile, and you
can update the other buildsystems by regenerating the files. Keeping the
other buildsystems up-to-date with main development.

The generator system is designed to easily drop in pm's for other
buildsystems as well, if someone has an itch. However, the focus has been
Windows development, so the 'engine' might need patches to support any
platform.

Also add some .gitignore entries for MSVC files.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd README for MSVC build
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:29 +0000 (10:20 +0200)] 
Add README for MSVC build

Based on original README patch from Frank Li, describe the steps
to build git with VS2008 (aka MSVC).

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd MSVC to Makefile
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:28 +0000 (10:20 +0200)] 
Add MSVC to Makefile

Enable MSVC builds with GNU Make by simply calling
    make MSVC=1
(Debug build possible by adding DEBUG=1 as well)

Two scripts, clink.pl and lib.pl, are used to convert certain GCC
specific command line options into something MSVC understands.
By building for MSVC with GNU Make, we can ensure that the MSVC
port always follows the latest code, and does not lag behind due
to unmaintained NMake Makefile or IDE projects.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDefine strncasecmp and ftruncate for MSVC
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:27 +0000 (10:20 +0200)] 
Define strncasecmp and ftruncate for MSVC

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMake usage of windows.h lean and mean
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:26 +0000 (10:20 +0200)] 
Make usage of windows.h lean and mean

Centralize the include of windows.h in git-compat-util.h, turn on
WIN32_LEAN_AND_MEAN to avoid including plenty of other header files
which is not needed in Git. Also ensure we load winsock2.h first,
so we don't load the older winsock definitions at a later stage,
since they contain duplicate definitions.

When moving windows.h into git-compat-util.h, we need to protect
the definition of struct pollfd in mingw.h, since this file is used
by both MinGW and MSVC, and the latter defines this struct in
winsock2.h.

We need to keep the windows.h include in compat/win32.h, since its
shared by both MinGW and Cygwin, and we're not touching Cygwin in
this commit. The include in git-compat-util.h is protected with an
ifdef WIN32, which is not the case when compiling for Cygwin.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd platform files for porting to MSVC
Frank Li [Wed, 16 Sep 2009 08:20:25 +0000 (10:20 +0200)] 
Add platform files for porting to MSVC

Add msvc.c and msvc.h to build git under MSVC.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd MinGW header files to build git with MSVC
Frank Li [Wed, 16 Sep 2009 08:20:24 +0000 (10:20 +0200)] 
Add MinGW header files to build git with MSVC

Added the header files dirent.h, unistd.h and utime.h
Add alloca.h, which simply includes malloc.h, which defines alloca().

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd empty header files for MSVC port
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:23 +0000 (10:20 +0200)] 
Add empty header files for MSVC port

MSVC lacks many of the header files included by git-compat-util.h; add
blank header files for these instead of going ifdef crazy.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoTest for WIN32 instead of __MINGW32_
Frank Li [Wed, 16 Sep 2009 08:20:22 +0000 (10:20 +0200)] 
Test for WIN32 instead of __MINGW32_

The code which is conditional on MinGW32 is actually conditional on Windows.
Use the WIN32 symbol, which is defined by the MINGW32 and MSVC environments,
but not by Cygwin.

Define SNPRINTF_SIZE_CORR=1 for MSVC too, as its vsnprintf function does
not add NUL at the end of the buffer if the result fits the buffer size
exactly.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix __stdcall placement and function prototype
Frank Li [Wed, 16 Sep 2009 08:20:21 +0000 (10:20 +0200)] 
Fix __stdcall placement and function prototype

MSVC requires __stdcall to be between the functions return value and the
function name, and that the function pointer type is in the form of

    return_type (WINAPI *function_name)(arguments...)

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSet _O_BINARY as default fmode for both MinGW and MSVC
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:20 +0000 (10:20 +0200)] 
Set _O_BINARY as default fmode for both MinGW and MSVC

MinGW set the _CRT_fmode to set both the default fmode and _O_BINARY on
stdin/stdout/stderr. Rather use the main() define in mingw.h to set this
for both MinGW and MSVC.

This will ensure that a MinGW and MSVC build will handle input and output
identically.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoChange regerror() declaration from K&R style to ANSI C (C89)
Frank Li [Wed, 16 Sep 2009 08:20:19 +0000 (10:20 +0200)] 
Change regerror() declaration from K&R style to ANSI C (C89)

The MSVC headers typedef errcode as int, and thus confused the compiler in
the K&R style definition. ANSI style deconfuses it.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd include guards to compat/win32.h
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:18 +0000 (10:20 +0200)] 
Add include guards to compat/win32.h

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAvoid declaration after statement
Frank Li [Wed, 16 Sep 2009 08:20:17 +0000 (10:20 +0200)] 
Avoid declaration after statement

MSVC does not understand this C99 style.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopack-objects: remove SP at the end of usage string
Thiago Farina [Fri, 18 Sep 2009 19:11:52 +0000 (12:11 -0700)] 
pack-objects: remove SP at the end of usage string

These spaces immediately before the end of lines are unnecessary.

While at it, instead of using a single string literal with backslashes
at end of each line, split the lines into individual string literals
and tell the compiler to concatenate them.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate the usage bundle string.
Thiago Farina [Thu, 17 Sep 2009 17:20:53 +0000 (13:20 -0400)] 
Update the usage bundle string.

"git bundle -h" gives a single long line that is hard to read.  Rewrite it
into a multi-line format similar to the one used by other commands, e.g
"git stash -h".

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocvs: initialize empty password
Clemens Buchacher [Thu, 17 Sep 2009 07:21:02 +0000 (09:21 +0200)] 
cvs: initialize empty password

If we do not read a password from the command line, and there are no
passwords stored in .cvspass, we have to initialize the password with
just "A".

This fixes a regression introduced by 3fb9d582 (Do not scramble
password read from .cvspass).

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Wed, 16 Sep 2009 22:09:07 +0000 (15:09 -0700)] 
Merge branch 'master' into next

* master:
  GIT 1.6.4.4

14 years agoMerge 1.6.4.4 in
Junio C Hamano [Wed, 16 Sep 2009 22:04:21 +0000 (15:04 -0700)] 
Merge 1.6.4.4 in

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGIT 1.6.4.4 v1.6.4.4
Junio C Hamano [Wed, 16 Sep 2009 21:53:26 +0000 (14:53 -0700)] 
GIT 1.6.4.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/maint-unpack-objects-strict' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:45:18 +0000 (14:45 -0700)] 
Merge branch 'jc/maint-unpack-objects-strict' into maint

* jc/maint-unpack-objects-strict:
  Fix "unpack-objects --strict"

Conflicts:
builtin-unpack-objects.c

14 years agoMerge branch 'tf/diff-whitespace-incomplete-line' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:27:08 +0000 (14:27 -0700)] 
Merge branch 'tf/diff-whitespace-incomplete-line' into maint

* tf/diff-whitespace-incomplete-line:
  xutils: Fix xdl_recmatch() on incomplete lines
  xutils: Fix hashing an incomplete line with whitespaces at the end

14 years agoMerge branch 'jk/maint-1.6.3-checkout-unborn' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:26:56 +0000 (14:26 -0700)] 
Merge branch 'jk/maint-1.6.3-checkout-unborn' into maint

* jk/maint-1.6.3-checkout-unborn:
  checkout: do not imply "-f" on unborn branches

14 years agoMerge branch 'jc/maint-checkout-index-to-prefix' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:26:40 +0000 (14:26 -0700)] 
Merge branch 'jc/maint-checkout-index-to-prefix' into maint

* jc/maint-checkout-index-to-prefix:
  check_path(): allow symlinked directories to checkout-index --prefix

14 years agoMerge branch 'jc/maint-blank-at-eof' into next
Junio C Hamano [Tue, 15 Sep 2009 18:56:39 +0000 (11:56 -0700)] 
Merge branch 'jc/maint-blank-at-eof' into next

* jc/maint-blank-at-eof:
  diff -B: colour whitespace errors
  diff.c: emit_add_line() takes only the rest of the line
  diff.c: split emit_line() from the first char and the rest of the line
  diff.c: shuffling code around
  diff --whitespace: fix blank lines at end

14 years agoMerge branch 'master' into next
Junio C Hamano [Tue, 15 Sep 2009 18:56:32 +0000 (11:56 -0700)] 
Merge branch 'master' into next

* master:
  http.c: avoid freeing an uninitialized pointer

14 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 18:21:10 +0000 (11:21 -0700)] 
Merge branch 'jc/maint-1.6.0-blank-at-eof' into jc/maint-blank-at-eof

* jc/maint-1.6.0-blank-at-eof:
  diff -B: colour whitespace errors

14 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 18:20:46 +0000 (11:20 -0700)] 
Merge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof

* 'jc/maint-1.6.0-blank-at-eof' (early part):
  diff.c: emit_add_line() takes only the rest of the line
  diff.c: split emit_line() from the first char and the rest of the line

14 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 10:38:30 +0000 (03:38 -0700)] 
Merge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof

* 'jc/maint-1.6.0-blank-at-eof' (early part):
  diff.c: shuffling code around

14 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 10:28:08 +0000 (03:28 -0700)] 
Merge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof

* 'jc/maint-1.6.0-blank-at-eof' (early part):
  diff --whitespace: fix blank lines at end
  core.whitespace: split trailing-space into blank-at-{eol,eof}
  diff --color: color blank-at-eof
  diff --whitespace=warn/error: fix blank-at-eof check
  diff --whitespace=warn/error: obey blank-at-eof
  diff.c: the builtin_diff() deals with only two-file comparison
  apply --whitespace: warn blank but not necessarily empty lines at EOF
  apply --whitespace=warn/error: diagnose blank at EOF
  apply.c: split check_whitespace() into two
  apply --whitespace=fix: detect new blank lines at eof correctly
  apply --whitespace=fix: fix handling of blank lines at the eof

14 years agodiff -B: colour whitespace errors
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)] 
diff -B: colour whitespace errors

We used to send the old and new contents more or less straight out to the
output with only the original "old is red, new is green" colouring.  Now
all the necessary support routines have been prepared, call them with a
line of data at a time from the output code and have them check and color
whitespace errors in exactly the same way as they are called from the low
level diff callback routines.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff.c: emit_add_line() takes only the rest of the line
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)] 
diff.c: emit_add_line() takes only the rest of the line

As the first character on the line that is fed to this function is always
"+", it is pointless to send that along with the rest of the line.

This change will make it easier to reuse the logic when emitting the
rewrite diff, as we do not want to copy a line only to add "+"/"-"/" "
immediately before its first character when we produce rewrite diff
output.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff.c: split emit_line() from the first char and the rest of the line
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)] 
diff.c: split emit_line() from the first char and the rest of the line

A new helper function emit_line_0() takes the first line of diff output
(typically "-", " ", or "+") separately from the remainder of the line.
No other functional changes.

This change will make it easier to reuse the logic when emitting the
rewrite diff, as we do not want to copy a line only to add "+"/"-"/" "
immediately before its first character when we produce rewrite diff
output.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff.c: shuffling code around
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)] 
diff.c: shuffling code around

Move function, type, and structure definitions for fill_mmfile(),
count_trailing_blank(), check_blank_at_eof(), emit_line(),
new_blank_line_at_eof(), emit_add_line(), sane_truncate_fn, and
emit_callback up in the file, so that they can be refactored into helper
functions and reused by codepath for emitting rewrite patches.

This only moves the lines around to make the next two patches easier to
read.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff --whitespace: fix blank lines at end
Junio C Hamano [Tue, 15 Sep 2009 05:05:57 +0000 (22:05 -0700)] 
diff --whitespace: fix blank lines at end

The earlier logic tried to colour any and all blank lines that were added
beyond the last blank line in the original, but this was very wrong.  If
you added 96 blank lines, a non-blank line, and then 3 blank lines at the
end, only the last 3 lines should trigger the error, not the earlier 96
blank lines.

We need to also make sure that the lines are after the last non-blank line
in the postimage as well before deciding to paint them.

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