git.git
18 years agoUse OPT_SET_INT and OPT_BIT in builtin-branch
Pierre Habouzit [Wed, 7 Nov 2007 10:20:28 +0000 (11:20 +0100)]
Use OPT_SET_INT and OPT_BIT in builtin-branch

Also remove a spurious after-check on --abbrev (OPT__ABBREV already takes
care of that)

Signed-off-by: Junio C Hamano <redacted>
18 years agoparse-options new features.
Pierre Habouzit [Wed, 7 Nov 2007 10:20:27 +0000 (11:20 +0100)]
parse-options new features.

options flags:
~~~~~~~~~~~~~
  PARSE_OPT_NONEG allow the caller to disallow the negated option to exists.

option types:
~~~~~~~~~~~~
  OPTION_BIT: ORs (or NANDs) a mask.
  OPTION_SET_INT: force the value to be set to this integer.
  OPTION_SET_PTR: force the value to be set to this pointer.

helper:
~~~~~~
  HAS_MULTI_BITS (in git-compat-util.h) is a bit-hack to check if an
  unsigned integer has more than one bit set, useful to check if conflicting
  options have been used.

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agot7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH
Björn Steinbrink [Sun, 11 Nov 2007 17:38:11 +0000 (18:38 +0100)]
t7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH

The git wrapper executable always prepends the GIT_EXEC_PATH build
variable to the current PATH, so prepending "." to the PATH is not
enough to give precedence to the fake vi executable.

The --exec-path option allows to prepend a directory to PATH even before
GIT_EXEC_PATH (which is added anyway), so we can use that instead.

Signed-off-by: Björn Steinbrink <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMake GIT_INDEX_FILE apply to git-commit
Rémi Vanicat [Sun, 11 Nov 2007 12:28:08 +0000 (13:28 +0100)]
Make GIT_INDEX_FILE apply to git-commit

Currently, when committing, git-commit ignore the value of
GIT_INDEX_FILE, and always use $GIT_DIR/index. This patch
fix it.

Signed-off-by: Rémi Vanicat <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMerge branch 'js/upload-pack'
Junio C Hamano [Sun, 11 Nov 2007 23:19:57 +0000 (15:19 -0800)]
Merge branch 'js/upload-pack'

* js/upload-pack:
  upload-pack: Use finish_{command,async}() instead of waitpid().

18 years agoMerge branch 'js/reset'
Junio C Hamano [Sun, 11 Nov 2007 23:19:24 +0000 (15:19 -0800)]
Merge branch 'js/reset'

* js/reset:
  builtin-reset: avoid forking "update-index --refresh"
  builtin-reset: do not call "ls-files --unmerged"

18 years agoMerge branch 'js/parseopt-abbrev-fix'
Junio C Hamano [Sun, 11 Nov 2007 23:12:06 +0000 (15:12 -0800)]
Merge branch 'js/parseopt-abbrev-fix'

* js/parseopt-abbrev-fix:
  parse-options: abbreviation engine fix.

18 years agoMerge branch 'maint'
Junio C Hamano [Sun, 11 Nov 2007 23:00:05 +0000 (15:00 -0800)]
Merge branch 'maint'

* maint:
  fix index-pack with packs >4GB containing deltas on 32-bit machines
  git-hash-object should honor config variables
  gitweb: correct month in date display for atom feeds

18 years agopush: teach push to pass --verbose option to transport layer
Steffen Prohaska [Sun, 11 Nov 2007 14:01:44 +0000 (15:01 +0100)]
push: teach push to pass --verbose option to transport layer

A --verbose option to push should also be passed to the
transport layer, i.e. git-send-pack, git-http-push.

git push is modified to do so.

Signed-off-by: Steffen Prohaska <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agopush: mention --verbose option in documentation
Steffen Prohaska [Sun, 11 Nov 2007 14:01:43 +0000 (15:01 +0100)]
push: mention --verbose option in documentation

Before this commit, only '-v' was documented.

Signed-off-by: Steffen Prohaska <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoSimplify strchrnul() compat code
Andreas Ericsson [Sat, 10 Nov 2007 11:55:48 +0000 (12:55 +0100)]
Simplify strchrnul() compat code

strchrnul() was introduced in glibc in April 1999 and included in
glibc-2.1. Checking for that version means the majority of all git
users would get to use the optimized version in glibc. Of the
remaining few some might get to use a slightly slower version
than necessary but probably not slower than what we have today.

Unfortunately, __GLIBC_PREREQ() macro was not available in glibc 2.1.1
which was short lived but already supported strchrnul().  Odd minority
users of that library needs to live with our compatibility inline version.

Rediffed-against-next-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agofix index-pack with packs >4GB containing deltas on 32-bit machines
Nicolas Pitre [Sun, 11 Nov 2007 04:29:10 +0000 (23:29 -0500)]
fix index-pack with packs >4GB containing deltas on 32-bit machines

This probably hasn't been properly tested before.  Here's a script to
create a 8GB repo with the necessary characteristics (copy the
test-genrandom executable from the Git build tree to /tmp first):

-----
#!/bin/bash

git init
git config core.compression 0

# create big objects with no deltas
for i in $(seq -w 1 2 63)
do
echo $i
/tmp/test-genrandom $i 268435456 > file_$i
git add file_$i
rm file_$i
echo "file_$i -delta" >> .gitattributes
done

# create "deltifiable" objects in between big objects
for i in $(seq -w 2 2 64)
do
echo "$i $i $i" >> grow
cp grow file_$i
git add file_$i
rm file_$i
done
rm grow

# create a pack with them
git commit -q -m "commit of big objects interlaced with small deltas"
git repack -a -d
-----

Then clone this repo over the Git protocol.

Signed-off-by: Nicolas Pitre <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-hash-object should honor config variables
Nicolas Pitre [Sat, 10 Nov 2007 20:00:33 +0000 (15:00 -0500)]
git-hash-object should honor config variables

... such as core.compression.

Signed-off-by: Nicolas Pitre <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years ago--format=pretty: avoid calculating expensive expansions twice
René Scharfe [Sat, 10 Nov 2007 11:18:26 +0000 (12:18 +0100)]
--format=pretty: avoid calculating expensive expansions twice

As Jeff King remarked, format strings with duplicate placeholders can
be slow to expand, because each instance is calculated anew.

This patch makes use of the fact that format_commit_message() and its
helper functions only ever add stuff to the end of the strbuf.  For
certain expensive placeholders, store the offset and length of their
expansion with the strbuf at the first occurrence.  Later they
expansion result can simply be copied from there -- no malloc() or
strdup() required.

These certain placeholders are the abbreviated commit, tree and
parent hashes, as the search for a unique abbreviated hash is quite
costly.  Here are the times for next (best of three runs):

$ time git log --pretty=format:%h >/dev/null

real    0m0.611s
user    0m0.404s
sys     0m0.204s

$ time git log --pretty=format:%h%h%h%h >/dev/null

real    0m1.206s
user    0m0.744s
sys     0m0.452s

And here those with this patch (and the previous two); the speedup
of the single placeholder case is just noise:

$ time git log --pretty=format:%h >/dev/null

real    0m0.608s
user    0m0.416s
sys     0m0.192s

$ time git log --pretty=format:%h%h%h%h >/dev/null

real    0m0.639s
user    0m0.488s
sys     0m0.140s

Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoadd strbuf_adddup()
René Scharfe [Sat, 10 Nov 2007 11:16:05 +0000 (12:16 +0100)]
add strbuf_adddup()

Add a new function, strbuf_adddup(), that appends a duplicate of a
part of a struct strbuf to end of the latter.

Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years ago--pretty=format: parse commit message only once
René Scharfe [Sat, 10 Nov 2007 11:14:20 +0000 (12:14 +0100)]
--pretty=format: parse commit message only once

As Jeff King pointed out, some placeholder expansions are related to
each other: the steps to calculate one go most of the way towards
calculating the other, too.

This patch makes format_commit_message() parse the commit message
only once, remembering the position of each item.  This speeds up
handling of format strings containing multiple placeholders from the
set %s, %a*, %c*, %e, %b.

Here are the timings for the git version in next.  The first one is
to estimate the overhead of the caching, the second one is taken
from http://svn.tue.mpg.de/tentakel/trunk/tentakel/Makefile as an
example of a format string found in the wild.  The times are the
fastest of three consecutive runs in each case:

$ time git log --pretty=format:%e >/dev/null

real    0m0.381s
user    0m0.340s
sys     0m0.024s

$ time git log --pretty=format:"* %cd %cn%n%n%s%n%b" >/dev/null

real    0m0.623s
user    0m0.556s
sys     0m0.052s

And here the times with this patch:

$ time git log --pretty=format:%e >/dev/null

real    0m0.385s
user    0m0.332s
sys     0m0.040s

$ time git log --pretty=format:"* %cd %cn%n%n%s%n%b" >/dev/null

real    0m0.563s
user    0m0.504s
sys     0m0.048s

Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogitweb: correct month in date display for atom feeds
Vincent Zanotti [Sat, 10 Nov 2007 18:55:27 +0000 (19:55 +0100)]
gitweb: correct month in date display for atom feeds

Signed-off-by: Vincent Zanotti <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agotest-lib.sh: move error line after error() declaration
Michele Ballabio [Sat, 10 Nov 2007 14:17:25 +0000 (15:17 +0100)]
test-lib.sh: move error line after error() declaration

This patch removes a spurious "command not found" error
and actually makes the "Test script did not set test_description."
string follow the command line option "--no-color".

Signed-off-by: Michele Ballabio <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agofor-each-ref: fix setup of option-parsing for --sort
Lars Hjemli [Sat, 10 Nov 2007 16:47:54 +0000 (17:47 +0100)]
for-each-ref: fix setup of option-parsing for --sort

The option value for --sort is already a pointer to a pointer to struct
ref_sort, so just use it.

Signed-off-by: Lars Hjemli <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMerge branch 'maint'
Junio C Hamano [Sat, 10 Nov 2007 10:06:30 +0000 (02:06 -0800)]
Merge branch 'maint'

* maint:
  print warning/error/fatal messages in one shot

18 years agocore-tutorial.txt: Fix git-show-branch example and its description
Sergei Organov [Thu, 8 Nov 2007 15:10:28 +0000 (18:10 +0300)]
core-tutorial.txt: Fix git-show-branch example and its description

Signed-off-by: Sergei Organov <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoFix memory leak in traverse_commit_list
Shawn O. Pearce [Fri, 9 Nov 2007 11:06:10 +0000 (06:06 -0500)]
Fix memory leak in traverse_commit_list

If we were listing objects too then the objects were buffered in an
array only reachable from a stack allocated structure.  When this
function returns that array would be leaked as nobody would have
a reference to it anymore.

Historically this hasn't been a problem as the primary user of
traverse_commit_list() (the noble git-rev-list) would terminate
as soon as the function was finished, thus allowing the operating
system to cleanup memory.  However we have been leaking this data
in git-pack-objects ever since that program learned how to run the
revision listing internally, rather than relying on reading object
names from git-rev-list.

To better facilitate reuse of traverse_commit_list during other
builtin tools (such as git-fetch) we shouldn't leak temporary memory
like this and instead we need to clean up properly after ourselves.

Signed-off-by: Shawn O. Pearce <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-commit: a bit more tests
Junio C Hamano [Sat, 10 Nov 2007 09:49:34 +0000 (01:49 -0800)]
git-commit: a bit more tests

Add tests for -s (sign-off) and multiple -m options

Signed-off-by: Junio C Hamano <redacted>
18 years agogit-add: make the entry stat-clean after re-adding the same contents
Junio C Hamano [Sat, 10 Nov 2007 02:22:52 +0000 (18:22 -0800)]
git-add: make the entry stat-clean after re-adding the same contents

Earlier in commit 0781b8a9b2fe760fc4ed519a3a26e4b9bd6ccffe
(add_file_to_index: skip rehashing if the cached stat already
matches), add_file_to_index() were taught not to re-add the path
if it already matches the index.

The change meant well, but was not executed quite right.  It
used ie_modified() to see if the file on the work tree is really
different from the index, and skipped adding the contents if the
function says "not modified".

This was wrong.  There are three possible comparison results
between the index and the file in the work tree:

 - with lstat(2) we _know_ they are different.  E.g. if the
   length or the owner in the cached stat information is
   different from the length we just obtained from lstat(2), we
   can tell the file is modified without looking at the actual
   contents.

 - with lstat(2) we _know_ they are the same.  The same length,
   the same owner, the same everything (but this has a twist, as
   described below).

 - we cannot tell from lstat(2) information alone and need to go
   to the filesystem to actually compare.

The last case arises from what we call 'racy git' situation,
that can be caused with this sequence:

    $ echo hello >file
    $ git add file
    $ echo aeiou >file ;# the same length

If the second "echo" is done within the same filesystem
timestamp granularity as the first "echo", then the timestamp
recorded by "git add" and the timestamp we get from lstat(2)
will be the same, and we can mistakenly say the file is not
modified.  The path is called 'racily clean'.  We need to
reliably detect racily clean paths are in fact modified.

To solve this problem, when we write out the index, we mark the
index entry that has the same timestamp as the index file itself
(that is the time from the point of view of the filesystem) to
tell any later code that does the lstat(2) comparison not to
trust the cached stat info, and ie_modified() then actually goes
to the filesystem to compare the contents for such a path.

That's all good, but it should not be used for this "git add"
optimization, as the goal of "git add" is to actually update the
path in the index and make it stat-clean.  With the false
optimization, we did _not_ cause any data loss (after all, what
we failed to do was only to update the cached stat information),
but it made the following sequence leave the file stat dirty:

    $ echo hello >file
    $ git add file
    $ echo hello >file ;# the same contents
    $ git add file

The solution is not to use ie_modified() which goes to the
filesystem to see if it is really clean, but instead use
ie_match_stat() with "assume racily clean paths are dirty"
option, to force re-adding of such a path.

There was another problem with "git add -u".  The codepath
shares the same issue when adding the paths that are found to be
modified, but in addition, it asked "git diff-files" machinery
run_diff_files() function (which is "git diff-files") to list
the paths that are modified.  But "git diff-files" machinery
uses the same ie_modified() call so that it does not report
racily clean _and_ actually clean paths as modified, which is
not what we want.

The patch allows the callers of run_diff_files() to pass the
same "assume racily clean paths are dirty" option, and makes
"git-add -u" codepath to use that option, to discover and re-add
racily clean _and_ actually clean paths.

We could further optimize on top of this patch to differentiate
the case where the path really needs re-adding (i.e. the content
of the racily clean entry was indeed different) and the case
where only the cached stat information needs to be refreshed
(i.e. the racily clean entry was actually clean), but I do not
think it is worth it.

This patch applies to maint and all the way up.

Signed-off-by: Junio C Hamano <redacted>
18 years agoce_match_stat, run_diff_files: use symbolic constants for readability
Junio C Hamano [Sat, 10 Nov 2007 08:15:03 +0000 (00:15 -0800)]
ce_match_stat, run_diff_files: use symbolic constants for readability

ce_match_stat() can be told:

 (1) to ignore CE_VALID bit (used under "assume unchanged" mode)
     and perform the stat comparison anyway;

 (2) not to perform the contents comparison for racily clean
     entries and report mismatch of cached stat information;

using its "option" parameter.  Give them symbolic constants.

Similarly, run_diff_files() can be told not to report anything
on removed paths.  Also give it a symbolic constant for that.

Signed-off-by: Junio C Hamano <redacted>
18 years agoprint warning/error/fatal messages in one shot
Nicolas Pitre [Fri, 9 Nov 2007 19:33:54 +0000 (14:33 -0500)]
print warning/error/fatal messages in one shot

Not doing so is likely to create a messed up display when sent over the
sideband protocol.

Signed-off-by: Nicolas Pitre <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agobuiltin-blame: set up the work_tree before the first file access
Johannes Schindelin [Fri, 9 Nov 2007 11:34:07 +0000 (11:34 +0000)]
builtin-blame: set up the work_tree before the first file access

We check in cmd_blame() if the specified path is there, but we
failed to set up the working tree before that.

While at it, make setup_work_tree() just return if it was run
before.

Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoadd a howto document about corrupted blob recovery
Nicolas Pitre [Fri, 9 Nov 2007 17:28:19 +0000 (12:28 -0500)]
add a howto document about corrupted blob recovery

Extracted from a post by Linus on the mailing list.

Signed-off-by: Nicolas Pitre <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-push: plumb in --mirror mode
Andy Whitcroft [Fri, 9 Nov 2007 23:32:25 +0000 (23:32 +0000)]
git-push: plumb in --mirror mode

Plumb in the --mirror mode for git-push.

Signed-off-by: Andy Whitcroft <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoTeach send-pack a mirror mode
Andy Whitcroft [Fri, 9 Nov 2007 23:32:10 +0000 (23:32 +0000)]
Teach send-pack a mirror mode

Existing "git push --all" is almost perfect for backing up to
another repository, except that "--all" only means "all
branches" in modern git, and it does not delete old branches and
tags that exist at the back-up repository that you have removed
from your local repository.

This teaches "git-send-pack" a new "--mirror" option.  The
difference from the "--all" option are that (1) it sends all
refs, not just branches, and (2) it deletes old refs you no
longer have on the local side from the remote side.

Original patch by Junio C Hamano.

Signed-off-by: Andy Whitcroft <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMerge master into aw/mirror-push
Junio C Hamano [Sat, 10 Nov 2007 05:13:46 +0000 (21:13 -0800)]
Merge master into aw/mirror-push

18 years agoDocumentation: remove documentation for removed tools.
Junio C Hamano [Fri, 9 Nov 2007 01:22:44 +0000 (17:22 -0800)]
Documentation: remove documentation for removed tools.

Old commit walkers other than http/curl transport have been removed
for some time now.  Remove their documents.

Signed-off-by: Junio C Hamano <redacted>
18 years agoMake check-docs target detect removed commands
Junio C Hamano [Fri, 9 Nov 2007 02:38:27 +0000 (18:38 -0800)]
Make check-docs target detect removed commands

The maintainer should remember running "make check-docs" from
time to time.

Signed-off-by: Junio C Hamano <redacted>
18 years agoDocumentation: lost-found is now deprecated.
Junio C Hamano [Fri, 9 Nov 2007 01:21:48 +0000 (17:21 -0800)]
Documentation: lost-found is now deprecated.

This makes it possible to mark commands that are deprecated in the
command list of the primary manual page git(7), and uses it to
mark "git lost-found" and "git tar-tree" as deprecated.

Signed-off-by: Junio C Hamano <redacted>
18 years agorebase: operate on a detached HEAD
Johannes Schindelin [Thu, 8 Nov 2007 18:19:08 +0000 (18:19 +0000)]
rebase: operate on a detached HEAD

The interactive version of rebase does all the operations on a detached
HEAD, so that after a successful rebase, <branch>@{1} is the pre-rebase
state.  The reflogs of "HEAD" still show all the actions in detail.

This teaches the non-interactive version to do the same.

Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years ago--pretty=format: on-demand format expansion
René Scharfe [Fri, 9 Nov 2007 00:49:42 +0000 (01:49 +0100)]
--pretty=format: on-demand format expansion

Some of the --pretty=format placeholders expansions are expensive to
calculate.  This is made worse by the current code's use of
interpolate(), which requires _all_ placeholders are to be prepared
up front.

One way to speed this up is to check which placeholders are present
in the format string and to prepare only the expansions that are
needed.  That still leaves the allocation overhead of interpolate().

Another way is to use a callback based approach together with the
strbuf library to keep allocations to a minimum and avoid string
copies.  That's what this patch does.  It introduces a new strbuf
function, strbuf_expand().

The function takes a format string, list of placeholder strings,
a user supplied function 'fn', and an opaque pointer 'context'
to tell 'fn' what thingy to operate on.

The function 'fn' is expected to accept a strbuf, a parsed
placeholder string and the 'context' pointer, and append the
interpolated value for the 'context' thingy, according to the
format specified by the placeholder.

Thanks to Pierre Habouzit for his suggestion to use strchrnul() and
the code surrounding its callsite.  And thanks to Junio for most of
this commit message. :)

Here my measurements of most of Paul Mackerras' test cases that
highlighted the performance problem (best of three runs):

(master)
$ time git log --pretty=oneline >/dev/null

real    0m0.390s
user    0m0.340s
sys     0m0.040s

(master)
$ time git log --pretty=raw >/dev/null

real    0m0.434s
user    0m0.408s
sys     0m0.016s

(master)
$ time git log --pretty="format:%H {%P} %ct" >/dev/null

real    0m1.347s
user    0m0.080s
sys     0m1.256s

(interp_find_active -- Dscho)
$ time ./git log --pretty="format:%H {%P} %ct" >/dev/null

real    0m0.694s
user    0m0.020s
sys     0m0.672s

(strbuf_expand -- this patch)
$ time ./git log --pretty="format:%H {%P} %ct" >/dev/null

real    0m0.395s
user    0m0.352s
sys     0m0.028s

Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoAdd strchrnul()
René Scharfe [Fri, 9 Nov 2007 00:49:36 +0000 (01:49 +0100)]
Add strchrnul()

As suggested by Pierre Habouzit, add strchrnul().  It's a useful GNU
extension and can simplify string parser code.  There are several
places in git that can be converted to strchrnul(); as a trivial
example, this patch introduces its usage to builtin-fetch--tool.c.

Signed-off-by: Rene Scharfe <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-cvsimport: fix handling of user name when it is not set in CVSROOT
Gordon Hopper [Thu, 8 Nov 2007 20:15:20 +0000 (13:15 -0700)]
git-cvsimport: fix handling of user name when it is not set in CVSROOT

The cvs programs do not default to "anonymous" as the user name, but use the
currently logged in user.  This patch more closely matches the cvs behavior.

Signed-off-by: Gordon Hopper <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMerge branch 'jk/terse-push' into aw/mirror-push
Junio C Hamano [Fri, 9 Nov 2007 09:10:10 +0000 (01:10 -0800)]
Merge branch 'jk/terse-push' into aw/mirror-push

* jk/terse-push:
  send-pack: segfault fix on forced push
  send-pack: require --verbose to show update of tracking refs
  receive-pack: don't mention successful updates
  more terse push output

18 years agoUpdate draft release notes for 1.5.4
Junio C Hamano [Fri, 9 Nov 2007 08:32:38 +0000 (00:32 -0800)]
Update draft release notes for 1.5.4

Signed-off-by: Junio C Hamano <redacted>
18 years agoMerge branch 'maint'
Junio C Hamano [Fri, 9 Nov 2007 08:21:44 +0000 (00:21 -0800)]
Merge branch 'maint'

* maint:
  Start preparing for 1.5.3.6
  git-send-email: Change the prompt for the subject of the initial message.
  SubmittingPatches: improve the 'Patch:' section of the checklist
  instaweb: Minor cleanups and fixes for potential problems
  stop t1400 hiding errors in tests
  Makefile: add missing dependency on wt-status.h
  refresh_index_quietly(): express "optional" nature of index writing better
  Fix sed string regex escaping in module_name.
  Avoid a few unportable, needlessly nested "...`...".
  git-mailsplit: with maildirs not only process cur/, but also new/

Signed-off-by: Junio C Hamano <redacted>
18 years agogit-bisect.sh: Fix sed script to work with AIX and BSD sed.
Ralf Wildenhues [Thu, 8 Nov 2007 21:48:24 +0000 (22:48 +0100)]
git-bisect.sh: Fix sed script to work with AIX and BSD sed.

\n is not portable in a s/// replacement string, only
in the regex part.  backslash-newline helps.

Signed-off-by: Ralf Wildenhues <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoStart preparing for 1.5.3.6
Junio C Hamano [Fri, 9 Nov 2007 08:17:26 +0000 (00:17 -0800)]
Start preparing for 1.5.3.6

Signed-off-by: Junio C Hamano <redacted>
18 years agogit-send-email: Change the prompt for the subject of the initial message.
Benoit Sigoure [Thu, 8 Nov 2007 18:56:28 +0000 (19:56 +0100)]
git-send-email: Change the prompt for the subject of the initial message.

I never understood what this prompt was asking for until I read the actual
source code.  I think this wording is much more understandable.

Signed-off-by: Benoit Sigoure <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoSubmittingPatches: improve the 'Patch:' section of the checklist
Sergei Organov [Thu, 8 Nov 2007 16:40:25 +0000 (19:40 +0300)]
SubmittingPatches: improve the 'Patch:' section of the checklist

There were 2 items "send patch to..." but having different set of
addresses to send patch to. Merge them together and move the resulting
item to the end of checklist.

Signed-off-by: Sergei Organov <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoinstaweb: Minor cleanups and fixes for potential problems
Jonas Fonseca [Thu, 8 Nov 2007 23:21:42 +0000 (00:21 +0100)]
instaweb: Minor cleanups and fixes for potential problems

Fix path quoting and test of empty values that some shells do not like.
Remove duplicate check and setting of $browser.

Signed-off-by: Jonas Fonseca <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agostop t1400 hiding errors in tests
Alex Riesen [Thu, 8 Nov 2007 23:41:39 +0000 (00:41 +0100)]
stop t1400 hiding errors in tests

The last rm in the test was lacking an "&&" before it,
which caused the errors in the commands be silently hidden.

Signed-off-by: Alex Riesen <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-am: -i does not take a string parameter.
Junio C Hamano [Fri, 9 Nov 2007 07:04:31 +0000 (23:04 -0800)]
git-am: -i does not take a string parameter.

    $ git am -3 -s -i file

spewed the usage strings back at the user while

    $ git am -3 -i -s file

didn't.  This fixes it.

Signed-off-by: Junio C Hamano <redacted>
18 years agoMakefile: add missing dependency on wt-status.h
Junio C Hamano [Fri, 9 Nov 2007 00:41:56 +0000 (16:41 -0800)]
Makefile: add missing dependency on wt-status.h

Signed-off-by: Junio C Hamano <redacted>
18 years agorefresh_index_quietly(): express "optional" nature of index writing better
Junio C Hamano [Fri, 9 Nov 2007 00:24:00 +0000 (16:24 -0800)]
refresh_index_quietly(): express "optional" nature of index writing better

The point of the part of the code this patch touches is that if
we modified the active_cache, we try to write it out and make it
the index file for later users to use by calling
"commit_locked_index", but we do not really care about the
failure from this sequence because it is done purely as an
optimization.

The original code called three functions primarily for their
side effects but as condition of an if statement, which is
admittedly a bad style.

Incidentally, it squelches an "empty if body" warning from gcc.

Signed-off-by: Junio C Hamano <redacted>
18 years agoFix sed string regex escaping in module_name.
Ralf Wildenhues [Thu, 8 Nov 2007 21:48:49 +0000 (22:48 +0100)]
Fix sed string regex escaping in module_name.

When escaping a string to be used as a sed regex, it is important
to only escape active characters.  Escaping other characters is
undefined according to POSIX, and in practice leads to issues with
extensions such as GNU sed's \+.

Signed-off-by: Ralf Wildenhues <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoAvoid a few unportable, needlessly nested "...`...".
Ralf Wildenhues [Thu, 8 Nov 2007 21:47:36 +0000 (22:47 +0100)]
Avoid a few unportable, needlessly nested "...`...".

Signed-off-by: Ralf Wildenhues <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agonicer display of thin pack completion
Nicolas Pitre [Thu, 8 Nov 2007 20:45:41 +0000 (15:45 -0500)]
nicer display of thin pack completion

In the same spirit of prettifying Git's output display for mere mortals,
here's a simple extension to the progress API allowing for a final
message to be provided when terminating a progress line, and use it for
the display of the number of objects needed to complete a thin pack,
saving yet one more line of screen display.

Signed-off-by: Nicolas Pitre <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoStyle: place opening brace of a function definition at column 1
Junio C Hamano [Thu, 8 Nov 2007 23:35:32 +0000 (15:35 -0800)]
Style: place opening brace of a function definition at column 1

Signed-off-by: Junio C Hamano <redacted>
18 years agocontrib/hooks/post-receive-email: remove cruft, $committer is not used
Gerrit Pape [Thu, 8 Nov 2007 12:11:57 +0000 (12:11 +0000)]
contrib/hooks/post-receive-email: remove cruft, $committer is not used

Signed-off-by: Gerrit Pape <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agohooks--update: decline deleting tags or branches by default, add config options
Gerrit Pape [Thu, 8 Nov 2007 09:47:39 +0000 (09:47 +0000)]
hooks--update: decline deleting tags or branches by default, add config options

Decline deleting tags or branches through git push <remote> :<ref> by
default, support config options hooks.allowdeletetag, hooks.allowdeletebranch
to override this per repository.

Before this patch the update hook interpreted deleting a tag, no matter if
annotated or not, through git push <remote> :<tag> as unannotated tag, and
declined it by default, but with an unappropriate error message:

 $ git push origin :atag
 deleting 'refs/tags/atag'
 *** The un-annotated tag, atag, is not allowed in this repository
 *** Use 'git tag [ -a | -s ]' for tags you want to propagate.
 ng refs/tags/atag hook declined
 error: hooks/update exited with error code 1
 error: hook declined to update refs/tags/atag
 error: failed to push to 'monolith:/git/qm/test-repo'

Signed-off-by: Gerrit Pape <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agohooks--update: fix test for properly set up project description file
Gerrit Pape [Thu, 8 Nov 2007 14:02:00 +0000 (14:02 +0000)]
hooks--update: fix test for properly set up project description file

The update hook template intends to abort if the project description file
hasn't been adjusted or is empty.  This patch fixes the check for 'being
adjusted'.

Signed-off-by: Gerrit Pape <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agosh-setup: don't let eval output to be shell-expanded.
Pierre Habouzit [Thu, 8 Nov 2007 09:32:11 +0000 (10:32 +0100)]
sh-setup: don't let eval output to be shell-expanded.

The previous patch missed the same construct in git-clone.

Signed-off-by: Pierre Habouzit <redacted>
18 years agosend-pack: segfault fix on forced push
Junio C Hamano [Thu, 8 Nov 2007 09:38:12 +0000 (01:38 -0800)]
send-pack: segfault fix on forced push

When pushing to overwrite a ref that points at a commit we do
not even have, the recent "terse push" patch tried to get a
unique abbreviation for the non-existent (from our point of
view) object, which resulted in strcpy(buf, NULL) and
segfaulted.

Signed-off-by: Junio C Hamano <redacted>
18 years agogit-mailsplit: with maildirs not only process cur/, but also new/
Gerrit Pape [Tue, 6 Nov 2007 08:54:18 +0000 (08:54 +0000)]
git-mailsplit: with maildirs not only process cur/, but also new/

When saving patches to a maildir with e.g. mutt, the files are put into
the new/ subdirectory of the maildir, not cur/.  This makes git-am state
"Nothing to do.".  This patch lets git-mailsplit additional check new/
after reading cur/.

This was reported by Joey Hess through
 http://bugs.debian.org/447396

Signed-off-by: Gerrit Pape <redacted>
Acked-by: Jeff King <redacted>
Acked-by: Alex Riesen <redacted>
Acked-by: Fernando J. Pereda <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-gui: Bind Meta-T for "Stage To Commit" menu action
Shawn O. Pearce [Thu, 8 Nov 2007 07:22:21 +0000 (02:22 -0500)]
git-gui: Bind Meta-T for "Stage To Commit" menu action

Aaron Digulla suggested we bind Ctrl-T or Cmd-T to "Stage To Commit"
menu action so it can be easily accessed from the keyboard.

Signed-off-by: Shawn O. Pearce <redacted>
18 years agogit-sh-setup: fix parseopt `eval` string underquoting
Junio C Hamano [Thu, 8 Nov 2007 07:04:38 +0000 (23:04 -0800)]
git-sh-setup: fix parseopt `eval` string underquoting

The 'automagic parseopt' support corrupted non option parameters
that had IFS characters in them.  The worst case is when it had
a non option parameter like this:

$1=" * some string"

Signed-off-by: Junio C Hamano <redacted>
18 years agotest format-patch -s: make sure MIME content type is shown as needed
Junio C Hamano [Sat, 3 Nov 2007 00:55:31 +0000 (17:55 -0700)]
test format-patch -s: make sure MIME content type is shown as needed

Signed-off-by: Junio C Hamano <redacted>
18 years agoformat-patch -s: add MIME encoding header if signer's name requires so
Junio C Hamano [Wed, 31 Oct 2007 21:55:17 +0000 (14:55 -0700)]
format-patch -s: add MIME encoding header if signer's name requires so

When the body of the commit log message contains a non-ASCII character,
format-patch correctly emitted the encoding header to mark the resulting
message as such.  However, if the original message was fully ASCII, the
command line switch "-s" was given to add a new sign-off, and
the signer's name was not ASCII only, the resulting message would have
contained non-ASCII character but was not marked as such.

This was cherry-picked from the fix in 'master'

Signed-off-by: Junio C Hamano <redacted>
18 years agoMerge branch 'jc/clean-config'
Junio C Hamano [Thu, 8 Nov 2007 02:19:38 +0000 (18:19 -0800)]
Merge branch 'jc/clean-config'

* jc/clean-config:
  clean: require -f to do damage by default

18 years agoMerge branch 'gp/reset-q'
Junio C Hamano [Thu, 8 Nov 2007 02:18:55 +0000 (18:18 -0800)]
Merge branch 'gp/reset-q'

* gp/reset-q:
  git-reset: add -q option to operate quietly

18 years agoMerge branch 'ds/maint-deflatebound'
Junio C Hamano [Thu, 8 Nov 2007 02:17:20 +0000 (18:17 -0800)]
Merge branch 'ds/maint-deflatebound'

* ds/maint-deflatebound:
  Improve accuracy of check for presence of deflateBound.

18 years agoMerge branch 'cp/p4'
Junio C Hamano [Thu, 8 Nov 2007 02:16:18 +0000 (18:16 -0800)]
Merge branch 'cp/p4'

* cp/p4:
  git-p4: Detect changes to executable bit and include them in p4 submit.
  git-p4: Add a helper function to parse the full git diff-tree output.

18 years agoMerge branch 'maint'
Junio C Hamano [Thu, 8 Nov 2007 02:07:07 +0000 (18:07 -0800)]
Merge branch 'maint'

* maint:
  Add Documentation/CodingGuidelines
  When exec() fails include the failing command in the error message
  RelNotes-1.5.3.5: fix another typo

18 years agoMerge branch 'mh/work-tree'
Junio C Hamano [Thu, 8 Nov 2007 01:37:00 +0000 (17:37 -0800)]
Merge branch 'mh/work-tree'

* mh/work-tree:
  Make git-blame fail when working tree is needed and we're not in one
  Don't always require working tree for git-rm
  Use setup_work_tree() in builtin-ls-files.c
  Refactor working tree setup

18 years agoSmall code readability improvement in show_reference() in builtin-tag.c
Mike Hommey [Sat, 3 Nov 2007 13:08:05 +0000 (14:08 +0100)]
Small code readability improvement in show_reference() in builtin-tag.c

Signed-off-by: Mike Hommey <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agosend-email: apply --suppress-from to S-o-b and cc-cmd
Uwe Kleine-König [Wed, 7 Nov 2007 07:34:12 +0000 (08:34 +0100)]
send-email: apply --suppress-from to S-o-b and cc-cmd

Signed-off-by: Uwe Kleine-König <redacted>
Cc: Ryan Anderson <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoFix minor nits in configure.ac
Ralf Wildenhues [Tue, 6 Nov 2007 20:12:45 +0000 (21:12 +0100)]
Fix minor nits in configure.ac

Avoid "test -o" as it is only XSI not POSIX, and not portable.
Avoid exit(3) in test programs in favor of return, to accommodate
for newer Autoconf not providing a declaration for exit.

Signed-off-by: Junio C Hamano <redacted>
18 years agoDeprecate git-lost-found
Johannes Schindelin [Thu, 8 Nov 2007 00:41:22 +0000 (00:41 +0000)]
Deprecate git-lost-found

"git fsck" learnt the option "--lost-found" in v1.5.3-rc0~5, to make
"git lost-found" obsolete.  It is time to deprecate "git lost-found".

Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoImprove accuracy of check for presence of deflateBound.
David Symonds [Wed, 7 Nov 2007 03:24:28 +0000 (14:24 +1100)]
Improve accuracy of check for presence of deflateBound.

ZLIB_VERNUM isn't defined in some zlib versions, so this patch does a proper
linking test in autoconf to see whether deflateBound exists in zlib. Also,
setting NO_DEFLATE_BOUND will also work for folk not using autoconf.

Signed-off-by: David Symonds <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoAdd Documentation/CodingGuidelines
Johannes Schindelin [Thu, 8 Nov 2007 00:33:19 +0000 (00:33 +0000)]
Add Documentation/CodingGuidelines

Even if our code is quite a good documentation for our coding style,
some people seem to prefer a document describing it.

The part about the shell scripts is clearly just copied from one of
Junio's helpful mails, and some parts were added from comments by
Junio, Andreas Ericsson and Robin Rosenberg.

Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agomake display of total transferred fully accurate
Nicolas Pitre [Tue, 6 Nov 2007 21:30:28 +0000 (16:30 -0500)]
make display of total transferred fully accurate

The minimum delay of 1/2 sec between successive throughput updates might
not have been elapsed when display_throughput() is called for the last
time, potentially making the display of total transferred bytes not
right when progress is said to be done.

Let's force an update of the throughput display as well when the
progress is complete.  As a side effect, the total transferred will
always be displayed even if the actual transfer rate doesn't have time
to kickin.

Signed-off-by: Nicolas Pitre <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agocontrib/hooks/post-receive-email: make subject prefix configurable
Gerrit Pape [Tue, 6 Nov 2007 13:49:30 +0000 (13:49 +0000)]
contrib/hooks/post-receive-email: make subject prefix configurable

Email subjects are prefixed with "[SCM] " by default, make this optionally
configurable through the hooks.emailprefix config option.

Suggested by martin f krafft through
 http://bugs.debian.org/428418

Signed-off-by: Gerrit Pape <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agocontrib/hooks/post-receive-email: reformat to wrap comments at 76 chars
Gerrit Pape [Tue, 6 Nov 2007 13:48:34 +0000 (13:48 +0000)]
contrib/hooks/post-receive-email: reformat to wrap comments at 76 chars

Signed-off-by: Gerrit Pape <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agocontrib/hooks/post-receive-email: fix typo
Gerrit Pape [Tue, 6 Nov 2007 13:48:07 +0000 (13:48 +0000)]
contrib/hooks/post-receive-email: fix typo

Signed-off-by: Gerrit Pape <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agorestore fetching with thin-pack capability
Nicolas Pitre [Wed, 7 Nov 2007 22:20:22 +0000 (17:20 -0500)]
restore fetching with thin-pack capability

Broken since commit fa74052922cf39e5a39ad7178d1b13c2da9b4519.

Signed-off-by: Nicolas Pitre <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-stash: Fix listing stashes
Emil Medve [Wed, 7 Nov 2007 21:10:27 +0000 (15:10 -0600)]
git-stash: Fix listing stashes

Commit bc9e7399af3790918140c30a5b2c85bf9a8f1ad3 "reverted" commit
f12e925ac23ad6169e046cfe05b8438a1611ad58

Signed-off-by: Emil Medve <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoWhen exec() fails include the failing command in the error message
Ask Bjørn Hansen [Tue, 6 Nov 2007 10:54:01 +0000 (02:54 -0800)]
When exec() fails include the failing command in the error message

git-svn occasionally fails with no details as to what went wrong - this should help debug those situations.

Signed-off-by: Ask Bjørn Hansen <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoRelNotes-1.5.3.5: fix another typo
David D Kilzer [Sun, 4 Nov 2007 12:45:22 +0000 (04:45 -0800)]
RelNotes-1.5.3.5: fix another typo

Signed-off-by: David D Kilzer <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoReteach builtin-ls-remote to understand remotes
Shawn O. Pearce [Wed, 7 Nov 2007 01:29:20 +0000 (20:29 -0500)]
Reteach builtin-ls-remote to understand remotes

Prior to being made a builtin git-ls-remote understood that when
it was given a remote name we wanted it to resolve that to the
pre-configured URL and connect to that location.  That changed when
it was converted to a builtin and many of my automation tools broke.

Signed-off-by: Shawn O. Pearce <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoGive git-am back the ability to add Signed-off-by lines.
Johannes Sixt [Tue, 6 Nov 2007 20:33:58 +0000 (21:33 +0100)]
Give git-am back the ability to add Signed-off-by lines.

This was lost in the migration to git-rev-parse --parseopt by commit
78443d90491c1b82afdffc3d5d2ab8c1a58928b5.

Signed-off-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agogit-rev-parse --parseopt
Junio C Hamano [Tue, 6 Nov 2007 20:23:14 +0000 (12:23 -0800)]
git-rev-parse --parseopt

The "parseopt mode" of git-rev-parse does not need to be run
inside a git repository, although the normal mode does.

Most notabily, lack of this fix breaks git-clone script, as
noticed by Nico.

Signed-off-by: Junio C Hamano <redacted>
18 years agoscripts: Add placeholders for OPTIONS_SPEC
Junio C Hamano [Tue, 6 Nov 2007 09:50:02 +0000 (01:50 -0800)]
scripts: Add placeholders for OPTIONS_SPEC

--text follows this line--
These commands currently lack OPTIONS_SPEC; allow people to
easily list with "git grep 'OPTIONS_SPEC=$'" what they can help
improving.

Signed-off-by: Junio C Hamano <redacted>
18 years agogit-reset: add -q option to operate quietly
Gerrit Pape [Sun, 4 Nov 2007 09:37:20 +0000 (09:37 +0000)]
git-reset: add -q option to operate quietly

Many git commands have a -q option to suppress output to stdout, let's
have it for git-reset too.

This was asked for by Joey Hess through
 http://bugs.debian.org/444933

Signed-off-by: Gerrit Pape <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-repack.sh to use git-rev-parse --parseopt
Pierre Habouzit [Sun, 4 Nov 2007 10:31:02 +0000 (11:31 +0100)]
Migrate git-repack.sh to use git-rev-parse --parseopt

Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-quiltimport.sh to use git-rev-parse --parseopt
Pierre Habouzit [Sun, 4 Nov 2007 10:31:01 +0000 (11:31 +0100)]
Migrate git-quiltimport.sh to use git-rev-parse --parseopt

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-checkout.sh to use git-rev-parse --parseopt --keep-dashdash
Pierre Habouzit [Sun, 4 Nov 2007 10:31:00 +0000 (11:31 +0100)]
Migrate git-checkout.sh to use git-rev-parse --parseopt --keep-dashdash

Also fix some space versus tabs issues.

Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-instaweb.sh to use git-rev-parse --parseopt
Pierre Habouzit [Sun, 4 Nov 2007 10:30:59 +0000 (11:30 +0100)]
Migrate git-instaweb.sh to use git-rev-parse --parseopt

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-merge.sh to use git-rev-parse --parseopt
Pierre Habouzit [Sun, 4 Nov 2007 10:30:58 +0000 (11:30 +0100)]
Migrate git-merge.sh to use git-rev-parse --parseopt

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-am.sh to use git-rev-parse --parseopt
Pierre Habouzit [Sun, 4 Nov 2007 10:30:57 +0000 (11:30 +0100)]
Migrate git-am.sh to use git-rev-parse --parseopt

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-clone to use git-rev-parse --parseopt
Pierre Habouzit [Sun, 4 Nov 2007 10:30:56 +0000 (11:30 +0100)]
Migrate git-clone to use git-rev-parse --parseopt

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMigrate git-clean.sh to use git-rev-parse --parseopt.
Pierre Habouzit [Sun, 4 Nov 2007 10:30:55 +0000 (11:30 +0100)]
Migrate git-clean.sh to use git-rev-parse --parseopt.

Also minor consistency tweaks in how errors are caught.

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoUpdate git-sh-setup(1) to allow transparent use of git-rev-parse --parseopt
Pierre Habouzit [Sun, 4 Nov 2007 10:30:54 +0000 (11:30 +0100)]
Update git-sh-setup(1) to allow transparent use of git-rev-parse --parseopt

If you set OPTIONS_SPEC, git-sh-setups uses git-rev-parse --parseopt
automatically.

It also diverts usage to re-exec $0 with the -h option as parse-options.c
will catch that.

If you need git-rev-parse --parseopt to keep the `--` the user may have
passed to your command, set OPTIONS_KEEPDASHDASH to a non empty value
in your script.

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoAdd a parseopt mode to git-rev-parse to bring parse-options to shell scripts.
Pierre Habouzit [Sun, 4 Nov 2007 10:30:53 +0000 (11:30 +0100)]
Add a parseopt mode to git-rev-parse to bring parse-options to shell scripts.

Signed-off-by: Pierre Habouzit <redacted>
Signed-off-by: Junio C Hamano <redacted>
18 years agoMake git-blame fail when working tree is needed and we're not in one
Mike Hommey [Sat, 3 Nov 2007 12:22:55 +0000 (13:22 +0100)]
Make git-blame fail when working tree is needed and we're not in one

Signed-off-by: Mike Hommey <redacted>
Signed-off-by: Junio C Hamano <redacted>
git clone https://git.99rst.org/PROJECT