gitweb.git
user-manual: define "branch" and "working tree" at... J. Bruce Fields Sun, 25 Nov 2007 18:53:37 +0000 (13:53 -0500)

user-manual: define "branch" and "working tree" at start

Some explanation here might help.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

git-checkout: describe detached head correctlyJunio C Hamano Sun, 25 Nov 2007 18:34:27 +0000 (10:34 -0800)

git-checkout: describe detached head correctly

When you have a file called HEAD in the work tree, the code to report
where the HEAD is at when "git checkout $commit^0" is done triggered
unnecessary ambiguity checking.

Explicitly mark the command line with "--" and make it clear that we are
talking about a revision.

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

add -i: Fix running from a subdirectoryJunio C Hamano Sun, 25 Nov 2007 18:10:10 +0000 (10:10 -0800)

add -i: Fix running from a subdirectory

This fixes the pathspec interactive_add() passes to the underlying
git-add--interactive helper. When the command was run from a
subdirectory, cmd_add() already has gone up to the toplevel of the work
tree, and the helper will be spawned from there. The pathspec given on
the command line from the user needs to be adjusted for this.

This adds "validate_pathspec()" function in the callchain, but it does
not validate yet. The function can be changed to barf if there are
unmatching pathspec given by the user, but that is not strictly
necessary.

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

builtin-add: fix command line building to call interactiveJunio C Hamano Sun, 25 Nov 2007 18:07:55 +0000 (10:07 -0800)

builtin-add: fix command line building to call interactive

The earlier 7c0ab4458994aa895855abc4a504cf693ecc0cf1 (Teach builtin-add
to pass multiple paths to git-add--interactive) did not allocate enough,
and had unneeded (void*) pointer arithmetic.

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

Merge branch 'kh/commit' into wc/add-iJunio C Hamano Sun, 25 Nov 2007 16:46:29 +0000 (08:46 -0800)

Merge branch 'kh/commit' into wc/add-i

This is to use a few functions refactored to use in the built-in
commit series.

* kh/commit: (28 commits)
Add a few more tests for git-commit
builtin-commit: Include the diff in the commit message when verbose.
builtin-commit: fix partial-commit support
Fix add_files_to_cache() to take pathspec, not user specified list of files
Export three helper functions from ls-files
builtin-commit: run commit-msg hook with correct message file
builtin-commit: do not color status output shown in the message template
file_exists(): dangling symlinks do exist
Replace "runstatus" with "status" in the tests
t7501-commit: Add test for git commit <file> with dirty index.
builtin-commit: Clean up an unused variable and a debug fprintf().
Call refresh_cache() when updating the user index for --only commits.
builtin-commit: Add newline when showing which commit was created
builtin-commit: resurrect behavior for multiple -m options
builtin-commit --s: add a newline if the last line was not a S-o-b
builtin-commit: fix --signoff
git status: show relative paths when run in a subdirectory
builtin-commit: Refresh cache after adding files.
builtin-commit: fix reflog message generation
launch_editor(): read the file, even when EDITOR=:
...

Update draft release notes for 1.5.4Junio C Hamano Sun, 25 Nov 2007 01:42:36 +0000 (17:42 -0800)

Update draft release notes for 1.5.4

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

Merge branch 'maint'Junio C Hamano Sun, 25 Nov 2007 03:52:45 +0000 (19:52 -0800)

Merge branch 'maint'

* maint:
Fix rev-list when showing objects involving submodules
test format-patch -s: make sure MIME content type is shown as needed
format-patch -s: add MIME encoding header if signer's name requires so

Merge branch 'rv/maint-index-commit' into maintJunio C Hamano Sun, 25 Nov 2007 02:03:29 +0000 (18:03 -0800)

Merge branch 'rv/maint-index-commit' into maint

* rv/maint-index-commit:
Make GIT_INDEX_FILE apply to git-commit

Merge branch 'lt/maint-rev-list-gitlink' into maintJunio C Hamano Sun, 25 Nov 2007 02:03:20 +0000 (18:03 -0800)

Merge branch 'lt/maint-rev-list-gitlink' into maint

* lt/maint-rev-list-gitlink:
Fix rev-list when showing objects involving submodules

Merge branch 'jc/maint-add-sync-stat' into maintJunio C Hamano Sun, 25 Nov 2007 02:03:04 +0000 (18:03 -0800)

Merge branch 'jc/maint-add-sync-stat' into maint

* jc/maint-add-sync-stat:
t2200: test more cases of "add -u"
git-add: make the entry stat-clean after re-adding the same contents
ce_match_stat, run_diff_files: use symbolic constants for readability

Merge branch 'jc/maint-format-patch-encoding' into... Junio C Hamano Sun, 25 Nov 2007 02:02:30 +0000 (18:02 -0800)

Merge branch 'jc/maint-format-patch-encoding' into maint

* jc/maint-format-patch-encoding:
test format-patch -s: make sure MIME content type is shown as needed
format-patch -s: add MIME encoding header if signer's name requires so

Merge branch 'bs/maint-t7005' into maintJunio C Hamano Sun, 25 Nov 2007 02:01:46 +0000 (18:01 -0800)

Merge branch 'bs/maint-t7005' into maint

* bs/maint-t7005:
t7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH

Merge branch 'bs/maint-commit-options' into maintJunio C Hamano Sun, 25 Nov 2007 01:54:08 +0000 (17:54 -0800)

Merge branch 'bs/maint-commit-options' into maint

* bs/maint-commit-options:
git-commit: Add tests for invalid usage of -a/--interactive with paths
git-commit.sh: Fix usage checks regarding paths given when they do not make sense

Deprecate peek-remoteJunio C Hamano Sun, 25 Nov 2007 01:41:18 +0000 (17:41 -0800)

Deprecate peek-remote

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

core.whitespace: documentation updates.Junio C Hamano Sat, 24 Nov 2007 19:57:41 +0000 (11:57 -0800)

core.whitespace: documentation updates.

This adds description of core.whitespace to the manual page of git-config,
and updates the stale description of whitespace handling in the manual
page of git-apply.

Also demote "strip" to a synonym status for "fix" as the value of --whitespace
option given to git-apply.

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

builtin-apply: teach whitespace_rulesJunio C Hamano Sat, 24 Nov 2007 04:14:20 +0000 (20:14 -0800)

builtin-apply: teach whitespace_rules

We earlier introduced core.whitespace to allow users to tweak the
definition of what the "whitespace errors" are, for the purpose of diff
output highlighting. This teaches the same to git-apply, so that the
command can both detect (when --whitespace=warn option is given) and fix
(when --whitespace=fix option is given) as configured.

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

t4119: correct overeager war-on-whitespaceJunio C Hamano Sat, 24 Nov 2007 04:13:41 +0000 (20:13 -0800)

t4119: correct overeager war-on-whitespace

Earlier a6080a0a44d5ead84db3dabbbc80e82df838533d (War on whitespace)
dropped a necessary trailing whitespace from the test vector.

Merge branch 'jk/send-pack'Junio C Hamano Sun, 25 Nov 2007 00:45:37 +0000 (16:45 -0800)

Merge branch 'jk/send-pack'

* jk/send-pack: (24 commits)
send-pack: cluster ref status reporting
send-pack: fix "everything up-to-date" message
send-pack: tighten remote error reporting
make "find_ref_by_name" a public function
Fix warning about bitfield in struct ref
send-pack: assign remote errors to each ref
send-pack: check ref->status before updating tracking refs
send-pack: track errors for each ref
git-push: add documentation for the newly added --mirror mode
Add tests for git push'es mirror mode
Update the tracking references only if they were succesfully updated on remote
Add a test checking if send-pack updated local tracking branches correctly
git-push: plumb in --mirror mode
Teach send-pack a mirror mode
send-pack: segfault fix on forced push
Reteach builtin-ls-remote to understand remotes
send-pack: require --verbose to show update of tracking refs
receive-pack: don't mention successful updates
more terse push output
Build in ls-remote
...

Merge branch 'sb/clean'Junio C Hamano Sun, 25 Nov 2007 00:31:34 +0000 (16:31 -0800)

Merge branch 'sb/clean'

* sb/clean:
Teach git clean to use setup_standard_excludes()
git-clean: Fix error message if clean.requireForce is not set.
Make git-clean a builtin

Merge branch 'js/mingw-fallouts'Junio C Hamano Sun, 25 Nov 2007 00:31:25 +0000 (16:31 -0800)

Merge branch 'js/mingw-fallouts'

* js/mingw-fallouts:
fetch-pack: Prepare for a side-band demultiplexer in a thread.
rehabilitate some t5302 tests on 32-bit off_t machines
Allow ETC_GITCONFIG to be a relative path.
Introduce git_etc_gitconfig() that encapsulates access of ETC_GITCONFIG.
Allow a relative builtin template directory.
Close files opened by lock_file() before unlinking.
builtin run_command: do not exit with -1.
Move #include <sys/select.h> and <sys/ioctl.h> to git-compat-util.h.
Use is_absolute_path() in sha1_file.c.
Skip t3902-quoted.sh if the file system does not support funny names.
t5302-pack-index: Skip tests of 64-bit offsets if necessary.
t7501-commit.sh: Not all seds understand option -i
t5300-pack-object.sh: Split the big verify-pack test into smaller parts.

Merge branch 'mh/rebase-skip-hard'Junio C Hamano Sun, 25 Nov 2007 00:31:08 +0000 (16:31 -0800)

Merge branch 'mh/rebase-skip-hard'

* mh/rebase-skip-hard:
Do git reset --hard HEAD when using git rebase --skip

Merge branch 'cc/bisect'Junio C Hamano Sun, 25 Nov 2007 00:31:02 +0000 (16:31 -0800)

Merge branch 'cc/bisect'

* cc/bisect:
Bisect reset: do nothing when not bisecting.
Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we are bisecting.
Bisect visualize: use "for-each-ref" to list all good refs.
git-bisect: modernize branch shuffling hack
git-bisect: use update-ref to mark good/bad commits
git-bisect: war on "sed"
Bisect reset: remove bisect refs that may have been packed.

builtin-apply: rename "whitespace" variables and fix... Junio C Hamano Fri, 23 Nov 2007 10:37:03 +0000 (02:37 -0800)

builtin-apply: rename "whitespace" variables and fix styles

The variables were somewhat misnamed.

* "What to do when whitespace errors are detected" is now called
"ws_error_action" (used to be called "new_whitespace");

* The constants to denote the possible actions are "nowarn_ws_error",
"warn_on_ws_error", "die_on_ws_error", and "correct_ws_error". The
last one used to be "strip_whitespace", but we correct whitespace
error in indent (SP followed by HT) and "strip" is not quite an
accurate name for it.

Other than the renaming of variables and constants, there is no
functional change in this patch. While we are at it, it also fixes
overly long lines and multi-line comment styles (which of course do
not affect the generated code at all).

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

Merge branch 'maint'Junio C Hamano Fri, 23 Nov 2007 07:25:42 +0000 (23:25 -0800)

Merge branch 'maint'

* maint:
Fix sample pre-commit hook

Fix sample pre-commit hookJunio C Hamano Fri, 23 Nov 2007 07:25:19 +0000 (23:25 -0800)

Fix sample pre-commit hook

If the worktree happened to have a file called HEAD, "diff-index --cached HEAD"
would complain about the ambiguity between revision and path. Avoid it by
using an explicit "--" for disambiguation.

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

Add a few more tests for git-commitJunio C Hamano Fri, 23 Nov 2007 00:21:49 +0000 (16:21 -0800)

Add a few more tests for git-commit

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

builtin-tag: accept and process multiple -m just like... Junio C Hamano Fri, 23 Nov 2007 07:16:51 +0000 (23:16 -0800)

builtin-tag: accept and process multiple -m just like git-commit

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

git-branch --contains: doc and testJunio C Hamano Mon, 19 Nov 2007 06:22:00 +0000 (22:22 -0800)

git-branch --contains: doc and test

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

git-branch --contains=commitJunio C Hamano Wed, 7 Nov 2007 22:58:09 +0000 (14:58 -0800)

git-branch --contains=commit

This teaches git-branch to limit its listing to branches that
are descendants to the named commit.

When you are using many topic branches, you often would want to
see which branch already includes a commit, so that you know
which can and cannot be rewound without disrupting other people.

One thing that sometimes happens to me is:

* Somebody sends a patch that is a good maint material. I
apply it to 'maint':

$ git checkout maint
$ git am -3 -s obvious-fix.patch

* Then somebody else sends another patch that is possibly a
good maint material, but I'd want to cook it in 'next' to be
extra sure. I fork a topic from 'maint' and apply the patch:

$ git checkout -b xx/maint-fix-foo
$ git am -3 -s ,xx-maint-fix-foo.patch

* A minor typo is found in the "obvious-fix.patch".

The above happens without pushing the results out, so I can
freely recover from it by amending 'maint', as long as I do not
forget to rebase the topics that were forked previously.

With this patch, I can do this to find out which topic
branches already contain the faulty commit:

$ git branch --contains=maint^
xx/maint-fix-foo

so I can rebase the xx/maint-fix-foo branch before merging it
to 'next'.

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

parse-options: Allow to hide options from the default... Pierre Habouzit Mon, 19 Nov 2007 09:21:44 +0000 (10:21 +0100)

parse-options: Allow to hide options from the default usage.

This is useful for backward-compatibility aliases, or very advanced command
line switches introduced for internal git usages and have no real use for a
user.

parse-options still shows them if the user asks for --help-all.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-add -i: allow multiple selection in patch subcommandJunio C Hamano Thu, 22 Nov 2007 09:47:13 +0000 (01:47 -0800)

git-add -i: allow multiple selection in patch subcommand

This allows more than one files from the list to be chosen from
the patch subcommand instead of going through the file one by
one.

This also updates the "list-and-choose" UI for usability. When
the prompt ends with ">>", if you type '*' to choose all
choices, the prompt immediately returns the choice without
requiring an extra empty line to confirm the selection.

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

Addendum to "MaintNotes"Junio C Hamano Thu, 22 Nov 2007 11:08:39 +0000 (06:08 -0500)

Addendum to "MaintNotes"

Add "how to maintain git" document. Foreward by Jeff King.

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

builtin-commit: Include the diff in the commit message... Kristian Høgsberg Thu, 22 Nov 2007 02:54:49 +0000 (21:54 -0500)

builtin-commit: Include the diff in the commit message when verbose.

run_diff_index() and the entire diff machinery is hard coded to output
to stdout, so just redirect that and restore it when done.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-commit: fix partial-commit supportJunio C Hamano Sun, 18 Nov 2007 09:52:55 +0000 (01:52 -0800)

builtin-commit: fix partial-commit support

When making a partial-commit, we need to prepare two index
files, one to be used to write out the tree to be committed
(temporary index) and the other to be used as the index file
after the commit is made.

The temporary index needs to be initialized to HEAD and then all
the named paths on the command line need to be staged on top of
the index. For this, running add_files_to_cache() that compares
what is in the index and the paths given from the command line
is not enough -- the comparison will miss the paths that the
user previously ran "git add" to the index since the HEAD
because the index reset to the HEAD would not know about them.
The index file needs to get the same modification done when
preparing the temporary index as described above.

This implementation mimics the behaviour of the scripted
version of git-commit. It first runs overlay_tree_on_cache(),
which was stolen from ls-files with the earlier change, to get
the list of paths that the user can potentially mean, and then
uses pathspec_match() to find which ones the user meant. This
list of paths is used to update both the temporary and the real
index file.

Additional fixes are:

- read the index file after pre-commit hook returns, as the
hook can modify it to affect the contents of the commit.

- remove the temporary index file .git/next-index-* after
commit is done or aborted.

- run post-commit hook with the real index file to be used
after the commit (previously it gave the temporary commit if
a partial commit was made).

- resurrect the safety mechanism to refuse partial commits
during a merge to match the scripted version.

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

Fix add_files_to_cache() to take pathspec, not user... Junio C Hamano Sun, 18 Nov 2007 09:12:04 +0000 (01:12 -0800)

Fix add_files_to_cache() to take pathspec, not user specified list of files

This separates the logic to limit the extent of change to the
index by where you are (controlled by "prefix") and what you
specify from the command line (controlled by "pathspec").

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

Export three helper functions from ls-filesJunio C Hamano Sun, 18 Nov 2007 09:13:32 +0000 (01:13 -0800)

Export three helper functions from ls-files

This exports three helper functions from ls-files.

* pathspec_match() checks if a given path matches a set of pathspecs
and optionally records which pathspec was used. This function used
to be called "match()" but renamed to be a bit less vague.

* report_path_error() takes a set of pathspecs and the record
pathspec_match() above leaves, and gives error message. This
was split out of the main function of ls-files.

* overlay_tree_on_cache() takes a tree-ish (typically "HEAD")
and overlays it on the current in-core index. By iterating
over the resulting index, the caller can find out the paths
in either the index or the HEAD. This function used to be
called "overlay_tree()" but renamed to be a bit more
descriptive.

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

builtin-commit: run commit-msg hook with correct messag... Junio C Hamano Sun, 18 Nov 2007 20:21:17 +0000 (12:21 -0800)

builtin-commit: run commit-msg hook with correct message file

It should run with $GIT_DIR/COMMIT_EDITMSG, not just COMMIT_EDITMSG.

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

builtin-commit: do not color status output shown in... Junio C Hamano Sun, 18 Nov 2007 20:01:38 +0000 (12:01 -0800)

builtin-commit: do not color status output shown in the message template

Noticed by Ping Yin on the list.

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

file_exists(): dangling symlinks do existJunio C Hamano Sun, 18 Nov 2007 09:58:16 +0000 (01:58 -0800)

file_exists(): dangling symlinks do exist

This function is used to see if a path given by the user does exist
on the filesystem. A symbolic link that does not point anywhere does
exist but running stat() on it would yield an error, and it incorrectly
said it does not exist.

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

Replace "runstatus" with "status" in the testsJohannes Schindelin Thu, 15 Nov 2007 06:27:57 +0000 (06:27 +0000)

Replace "runstatus" with "status" in the tests

We no longer have "runstatus", but running "status" is no longer that
expensive anyway; it is a builtin.

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

t7501-commit: Add test for git commit <file> with dirty... Kristian Høgsberg Thu, 15 Nov 2007 14:49:58 +0000 (09:49 -0500)

t7501-commit: Add test for git commit <file> with dirty index.

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

builtin-commit: Clean up an unused variable and a debug... Kristian Høgsberg Wed, 14 Nov 2007 15:31:53 +0000 (10:31 -0500)

builtin-commit: Clean up an unused variable and a debug fprintf().

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Call refresh_cache() when updating the user index for... Kristian Høgsberg Mon, 12 Nov 2007 20:48:22 +0000 (15:48 -0500)

Call refresh_cache() when updating the user index for --only commits.

We're guaranteeing the user that the index will be stat-clean after
git commit. Thus, we need to call refresh_cache() for the user index too,
in the 'git commit <paths>' case.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-commit: Add newline when showing which commit... Johannes Schindelin Sun, 11 Nov 2007 17:36:52 +0000 (17:36 +0000)

builtin-commit: Add newline when showing which commit was created

The function log_tree_commit() does not break the line, so we have to
do it ourselves.

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

builtin-commit: resurrect behavior for multiple -m... Johannes Schindelin Sun, 11 Nov 2007 17:36:39 +0000 (17:36 +0000)

builtin-commit: resurrect behavior for multiple -m options

When more than one -m option is given, the message does not replace
the previous, but is appended as a new paragraph.

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

builtin-commit --s: add a newline if the last line... Johannes Schindelin Sun, 11 Nov 2007 17:36:27 +0000 (17:36 +0000)

builtin-commit --s: add a newline if the last line was not a S-o-b

The rule is this: if the last line already contains the sign off by the
current committer, do nothing. If it contains another sign off, just
add the sign off of the current committer. If the last line does not
contain a sign off, add a new line before adding the sign off.

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

builtin-commit: fix --signoffJohannes Schindelin Sun, 11 Nov 2007 17:35:58 +0000 (17:35 +0000)

builtin-commit: fix --signoff

The Signed-off-by: line contained a spurious timestamp. The reason was
a call to git_committer_info(1), which automatically added the
timestamp.

Instead, fmt_ident() was taught to interpret an empty string for the
date (as opposed to NULL, which still triggers the default behavior)
as "do not bother with the timestamp", and builtin-commit.c uses it.

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

git status: show relative paths when run in a subdirectoryJohannes Schindelin Sun, 11 Nov 2007 17:35:41 +0000 (17:35 +0000)

git status: show relative paths when run in a subdirectory

To show the relative paths, the function formerly called quote_crlf()
(now called quote_path()) takes the prefix as an additional argument.

While at it, the static buffers were replaced by strbufs.

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

builtin-commit: Refresh cache after adding files.Kristian Høgsberg Fri, 9 Nov 2007 16:40:27 +0000 (11:40 -0500)

builtin-commit: Refresh cache after adding files.

We have promised our users that after running git-status or
git-commit the index will be refreshed for a long time since
these commands were introduced. Do refresh the index before
writing it out to keep the promise.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-commit: fix reflog message generationJohannes Schindelin Thu, 8 Nov 2007 12:15:26 +0000 (12:15 +0000)

builtin-commit: fix reflog message generation

Instead of strdup()ing, we can just reuse the buffer in which the
commit message is stored, and which is supposed to hold the reflog
message anyway.

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

launch_editor(): read the file, even when EDITOR=:Johannes Schindelin Thu, 8 Nov 2007 14:06:52 +0000 (14:06 +0000)

launch_editor(): read the file, even when EDITOR=:

Earlier we just returned in case EDITOR=: but the message stored
in the file was not read back. Fix this, at the same time
simplifying the code as suggested by Johannes Sixt.

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

Port git commit to C.Kristian Høgsberg Thu, 8 Nov 2007 16:59:00 +0000 (11:59 -0500)

Port git commit to C.

This makes git commit a builtin and moves git-commit.sh to
contrib/examples. This also removes the git-runstatus
helper, which was mostly just a git-status.sh implementation detail.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Export launch_editor() and make it accept ':' as a... Kristian Høgsberg Fri, 2 Nov 2007 15:33:08 +0000 (11:33 -0400)

Export launch_editor() and make it accept ':' as a no-op editor.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add testcase for amending and fixing author in git... Kristian Høgsberg Fri, 2 Nov 2007 15:33:06 +0000 (11:33 -0400)

Add testcase for amending and fixing author in git commit.

We used to clobber author time, but we shouldn't.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make test scripts executable.Junio C Hamano Fri, 23 Nov 2007 00:52:17 +0000 (16:52 -0800)

Make test scripts executable.

Merge branch 'maint'Junio C Hamano Fri, 23 Nov 2007 00:51:18 +0000 (16:51 -0800)

Merge branch 'maint'

* maint:
Make test scripts executable.
bundle create: keep symbolic refs' names instead of resolving them

Make test scripts executable.Junio C Hamano Fri, 23 Nov 2007 00:48:55 +0000 (16:48 -0800)

Make test scripts executable.

rebase -i: move help to end of todo fileJohannes Schindelin Thu, 22 Nov 2007 12:30:10 +0000 (12:30 +0000)

rebase -i: move help to end of todo file

[PATCH] rebase -i: move help to end of todo file

Many editors start in the first line, so the 9-line help text was an
annoyance. So move it to the end.

Requested by Junio.

While at it, add a hint how to abort the rebase.

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

bundle create: keep symbolic refs' names instead of... Johannes Schindelin Thu, 22 Nov 2007 12:24:59 +0000 (12:24 +0000)

bundle create: keep symbolic refs' names instead of resolving them

When creating a bundle, symbolic refs used to be resolved to the
non-symbolic refs they point to before being written to the list
of contained refs. I.e. "git bundle create a1.bundle HEAD master"
would show something like

388afe7881b33102fada216dd07806728773c011 refs/heads/master
388afe7881b33102fada216dd07806728773c011 refs/heads/master

instead of

388afe7881b33102fada216dd07806728773c011 HEAD
388afe7881b33102fada216dd07806728773c011 refs/heads/master

Introduce a special handling so that the symbolic refs are listed
with the names passed on the command line.

Noticed by Santi Béjar.

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

git-merge-ours: make it a builtin.Thomas Harning Thu, 22 Nov 2007 20:19:40 +0000 (15:19 -0500)

git-merge-ours: make it a builtin.

Except that this fixes a longstanding corner case bug by
tightening the way underlying diff-index command is run, it is
functionally equivalent to the scripted version.

Signed-off-by: Thomas Harning Jr <harningt@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui: update it.po and glossary/it.poMichele Ballabio Thu, 22 Nov 2007 10:46:21 +0000 (11:46 +0100)

git-gui: update it.po and glossary/it.po

Updates and fixes:
* current -> attuale
* failed -> impossibile/non riuscito
* corrupt -> danneggiato

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: fix a typo in lib/commit.tclMichele Ballabio Thu, 22 Nov 2007 15:20:08 +0000 (16:20 +0100)

git-gui: fix a typo in lib/commit.tcl

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Add path-limiting to git-add--interactiveWincent Colaiuta Thu, 22 Nov 2007 01:36:24 +0000 (02:36 +0100)

Add path-limiting to git-add--interactive

Implement Junio's suggestion that git-add--interactive should reproduce the
path-limiting semantics of non-interactive git-add.

In otherwords, if "git add -i" (unrestricted) shows paths from a set A,
"git add -i paths..." should show paths from a subset of the set A and that
subset should be defined with the existing ls-files pathspec semantics.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach builtin-add to pass multiple paths to git-add... Wincent Colaiuta Thu, 22 Nov 2007 00:02:52 +0000 (01:02 +0100)

Teach builtin-add to pass multiple paths to git-add--interactive

Instead of just accepting a single file parameter, git-add now accepts
any number of path parameters, fowarding them to git-add--interactive.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Refactor patch_update_cmdWincent Colaiuta Wed, 21 Nov 2007 12:36:38 +0000 (13:36 +0100)

Refactor patch_update_cmd

Split patch_update_cmd into two functions, one to prompt the user for
a path to patch and another to do the actual work given that file path.
This lays the groundwork for a future commit which will teach
git-add--interactive to accept a path parameter and jump directly to
the patch subcommand for that path, bypassing the interactive prompt.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Authenticate only once in git-send-emailWincent Colaiuta Wed, 21 Nov 2007 12:35:05 +0000 (13:35 +0100)

Authenticate only once in git-send-email

When using git-send-email with SMTP authentication sending a patch series
would redundantly authenticate multiple times, once for each patch. In
the worst case, this would actually prevent the series from being sent
because the server would reply with a "5.5.0 Already Authenticated"
status code which would derail the process.

This commit teaches git-send-email to authenticate once and only once at
the beginning of the series.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.bogomips.org/git-svnJunio C Hamano Thu, 22 Nov 2007 08:34:49 +0000 (00:34 -0800)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
git-svn: allow `info' command to work offline
git-svn: info --url [path]
git-svn info: implement info command
git-svn: extract reusable code into utility functions
t9106: fix a race condition that caused svn to miss modifications

Fix "quote" misconversion for rewrite diff output.Junio C Hamano Thu, 22 Nov 2007 07:06:44 +0000 (23:06 -0800)

Fix "quote" misconversion for rewrite diff output.

663af3422a648e87945e4d8c0cc3e13671f2bbde (Full rework of
quote_c_style and write_name_quoted.) mistakenly used puts()
when writing out a fixed string when it did not want to add a
terminating LF.

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

git-svn: allow `info' command to work offlineEric Wong Thu, 22 Nov 2007 02:20:57 +0000 (18:20 -0800)

git-svn: allow `info' command to work offline

Cache the repository root whenever we connect to the repository.
This will allow us to notice URL changes if the user changes the
URL in .git/config, too.

If the repository is no longer accessible, or if `git svn info'
is the first and only command run; then '(offline)' will be
displayed for "Repository Root:" in the output.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

git-svn: info --url [path]David D. Kilzer Wed, 21 Nov 2007 19:57:19 +0000 (11:57 -0800)

git-svn: info --url [path]

Return the svn URL for the given path, or return the svn
repository URL if no path is given.

Added 18 tests to t/t9119-git-svn-info.sh.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn info: implement info commandDavid D. Kilzer Wed, 21 Nov 2007 19:57:18 +0000 (11:57 -0800)

git-svn info: implement info command

Implement "git-svn info" for files and directories based on the
"svn info" command. Note that the -r/--revision argument is not
supported yet.

Added 18 tests in t/t9119-git-svn-info.sh.

[ew: small fix to work without arguments on all working directories]

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: extract reusable code into utility functionsDavid D. Kilzer Wed, 21 Nov 2007 06:43:17 +0000 (22:43 -0800)

git-svn: extract reusable code into utility functions

Extacted canonicalize_path() in the main package.

Created new Git::SVN::Util package with an md5sum() function. A
new package was created so that Digest::MD5 did not have to be
loaded in the main package. Replaced code in the SVN::Git::Editor
and SVN::Git::Fetcher packages with calls to md5sum().

Extracted the format_svn_date(), parse_git_date() and
set_local_timezone() functions within the Git::SVN::Log package.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

t9106: fix a race condition that caused svn to miss... Eric Wong Wed, 21 Nov 2007 08:57:33 +0000 (00:57 -0800)

t9106: fix a race condition that caused svn to miss modifications

carbonated beverage noticed this test was occasionally failing.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Merge git://repo.or.cz/git-guiJunio C Hamano Wed, 21 Nov 2007 08:00:56 +0000 (00:00 -0800)

Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui: (96 commits)
git-gui 0.9.0
git-gui: Bind Meta-T for "Stage To Commit" menu action
git-gui: Allow users to set font weights to bold
git-gui: Update Japanese strings (part 2)
git-gui: Update Japanese strings
Updated russian translation of git-gui
po2msg: actually output statistics
po2msg: ignore untranslated messages
po2msg: ignore entries marked with "fuzzy"
git-gui: Protect against bad translation strings
git-gui: Make sure we get errors from git-update-index
More updates and corrections to the russian translation of git-gui
Updated Russian translation.
git-gui: Update German translation
git-gui: Add more terms to glossary.
git-gui: Paper bag fix the global config parsing
git-gui: Honor a config.mak in git-gui's top level
git-gui: Collapse $env(HOME) to ~/ in recent repositories on Windows
git-gui: Support cloning Cygwin based work-dirs
git-gui: Use proper Windows shortcuts instead of bat files
...

git-p4: Fix typo in --detect-labelsShun Kei Leung Wed, 21 Nov 2007 03:01:19 +0000 (11:01 +0800)

git-p4: Fix typo in --detect-labels

Signed-off-by: Kevin Leung <kevinlsk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-pack: cluster ref status reportingJeff King Tue, 20 Nov 2007 11:18:01 +0000 (06:18 -0500)

send-pack: cluster ref status reporting

Instead of intermingling success and failure, we now print:

1. all uptodate refs (if args.verbose is enabled)
2. successfully pushed refs
3. failed refs

with the assumption that the user is most likely to see the
ones at the end, and therefore we order them from "least
interesting" to "most interesting."

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

avoid "defined but not used" warning for fetch_objs_via... Jeff King Sun, 18 Nov 2007 08:17:23 +0000 (03:17 -0500)

avoid "defined but not used" warning for fetch_objs_via_walker

Because this function is static and used only by the
http-walker, when NO_CURL is defined, gcc emits a "defined
but not used" warning.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui 0.9.0 gitgui-0.9.0Shawn O. Pearce Wed, 21 Nov 2007 07:10:03 +0000 (02:10 -0500)

git-gui 0.9.0

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'maint'Junio C Hamano Wed, 21 Nov 2007 07:00:07 +0000 (23:00 -0800)

Merge branch 'maint'

* maint:
send-email: add transfer encoding header with content-type
Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.
config: clarify compression defaults
config: correct core.loosecompression documentation

send-email: add transfer encoding header with content... Jeff King Tue, 20 Nov 2007 12:54:04 +0000 (07:54 -0500)

send-email: add transfer encoding header with content-type

We add the content-type header only when we have non-7bit
characters from the 'From' header, so we really need to
specify the encoding (in other cases, where the commit text
needed a content-type, git-format-patch will already have
added the encoding header).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-compat-util.h: auto-adjust to compiler support... Junio C Hamano Tue, 20 Nov 2007 20:08:06 +0000 (12:08 -0800)

git-compat-util.h: auto-adjust to compiler support of FLEX_ARRAY a bit better

When declaring a structure with a flexible array member, instead
of defaulting to the c99 syntax for non-gnu compilers (which
burned people with older compilers), default to the traditional
and more portable "member[1]; /* more */" syntax.

At the same time, other c99 compilers should be able to take
advantage of the modern syntax to flexible array members without
being gcc. Check __STDC_VERSION__ for that.

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

Flush progress message buffer in display().Johannes Sixt Mon, 19 Nov 2007 19:48:58 +0000 (20:48 +0100)

Flush progress message buffer in display().

This will make progress display from pack-objects (invoked via
upload-pack) more responsive on platforms with an implementation
of stdio whose stderr is line buffered.

The standard error stream is defined to be merely "not fully
buffered"; this is different from "unbuffered". If the
implementation of the stdio library chooses to make it line
buffered, progress reports that end with CR but do not contain
LF will accumulate in the stdio buffer before written out. A
fflush() after each progress display gives a nice continuous
progress.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

autoconf: Add tests for memmem, strtoumax and mkdtemp... Jakub Narebski Mon, 19 Nov 2007 18:47:05 +0000 (19:47 +0100)

autoconf: Add tests for memmem, strtoumax and mkdtemp functions

Update configure.ac (and config.mak.in) to keep up with git
development by adding tests for memmem (NO_MEMMEM), strtoumax
(NO_STRTOUMAX) and mkdtemp (NO_MKDTEMP) functions.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Put project README in div.readme, fix its paddingJakub Narebski Mon, 19 Nov 2007 13:16:12 +0000 (14:16 +0100)

gitweb: Put project README in div.readme, fix its padding

Put (optional) projects README on "summary" page in <div> element
using "readme" class. This allow to style it using CSS.

Add padding to project's README to make it line out with the rest
of the page.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>

gitweb: Style all tables using CSSJakub Narebski Mon, 19 Nov 2007 13:16:11 +0000 (14:16 +0100)

gitweb: Style all tables using CSS

Remove all cellspacing="0" attributes from tables in gitweb,
replacing it by CSS rule. Add CSS classes for all tables.

While at it, change class(es) of table for commit message and commit
authorship search from "grep" to "commit_search"; similarly,
"grep_search" class is now used for table with results of grep (files)
search.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>

send-email: Don't add To: recipients to the Cc: headerAsk Bjørn Hansen Mon, 19 Nov 2007 11:00:26 +0000 (03:00 -0800)

send-email: Don't add To: recipients to the Cc: header

Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Bisect reset: do nothing when not bisecting.Christian Couder Tue, 20 Nov 2007 05:39:53 +0000 (06:39 +0100)

Bisect reset: do nothing when not bisecting.

Before this patch, using "git bisect reset" when not bisecting
did a "git checkout master" for no good reason.

This also happened using "git bisect replay" when not bisecting
because "bisect_replay" starts by calling "bisect_reset".

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc fix for git-reflog: mention @{...} syntax, and... Matthieu Moy Mon, 19 Nov 2007 18:25:11 +0000 (19:25 +0100)

Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.

The HEAD@{...} syntax was documented in git-rev-parse manpage, which
is hard to find by someone looking for the documentation of porcelain.
git-reflog is probably the place where one expects to find this.

While I'm there, "git revlog show whatever" was also undocumented.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config: clarify compression defaultsBrian Downing Mon, 19 Nov 2007 16:58:51 +0000 (10:58 -0600)

config: clarify compression defaults

* Clarify that core.compression provides a system-wide default to
other compression parameters.

* Explain that the default for pack.compression, -1, is "a default
compromise between speed and compression (currently equivalent
to level 6)" according to zlib.h.

Signed-off-by: Brian Downing <bdowning@lavos.net>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config: correct core.loosecompression documentationBrian Downing Mon, 19 Nov 2007 16:58:50 +0000 (10:58 -0600)

config: correct core.loosecompression documentation

* core.loosecompression stated that the default was "0 (best speed)",
when in fact 0 is "no compression", and the default is Z_BEST_SPEED,
which is 1.

Signed-off-by: Brian Downing <bdowning@lavos.net>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitview: import only one of gtksourceview and gtksource... Anton Gyllenberg Mon, 19 Nov 2007 10:37:16 +0000 (12:37 +0200)

gitview: import only one of gtksourceview and gtksourceview2

Importing both gtksourceview and gtksourceview2 will make python segfault
on my system (ubuntu 7.10). Change so that gtksourceview is only imported
if importing gtksourceview2 fails. This should be safe as gtksourceview
is only used if gtksourceview2 is not available.

Signed-off-by: Anton Gyllenberg <anton@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-send-email: show all headers when sending mailDavid D. Kilzer Mon, 19 Nov 2007 04:14:55 +0000 (20:14 -0800)

git-send-email: show all headers when sending mail

As a git newbie, it was confusing to set an In-Reply-To header but then
not see it printed when the git-send-email command was run.

This patch prints all headers that would be sent to sendmail or an SMTP
server instead of only printing From, Subject, Cc, To. It also removes
the now-extraneous Date header after the "Log says" line.

Added test to t/t9001-send-email.sh.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 19 Nov 2007 08:19:15 +0000 (00:19 -0800)

Merge branch 'maint'

* maint:
Documentation: Fix references to deprecated commands
user-manual: mention "..." in "Generating diffs", etc.
user-manual: Add section "Why bisecting merge commits can be harder ..."
git-remote.txt: fix example url

Further clarify clean.requireForce changesWincent Colaiuta Mon, 19 Nov 2007 08:06:31 +0000 (09:06 +0100)

Further clarify clean.requireForce changes

Mention the -f switch in the release notes for clean.requireForce to avoid
possible misunderstandings.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' of git://linux-nfs.org/~bfields... Junio C Hamano Mon, 19 Nov 2007 07:56:01 +0000 (23:56 -0800)

Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maint

* 'maint' of git://linux-nfs.org/~bfields/git:
Documentation: Fix references to deprecated commands
user-manual: mention "..." in "Generating diffs", etc.
user-manual: Add section "Why bisecting merge commits can be harder ..."
git-remote.txt: fix example url

Make builtin-tag.c use parse_options.Carlos Rica Fri, 9 Nov 2007 13:42:56 +0000 (14:42 +0100)

Make builtin-tag.c use parse_options.

Also, this removes those tests ensuring that repeated
-m options don't allocate memory more than once, because now
this is done after parsing options, using the last one
when more are given. The same for -F.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach git clean to use setup_standard_excludes()Shawn Bohrer Thu, 15 Nov 2007 05:00:54 +0000 (23:00 -0600)

Teach git clean to use setup_standard_excludes()

Signed-off-by: Shawn Bohrer <shawn.bohrer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-clean: Fix error message if clean.requireForce... Junio C Hamano Tue, 13 Nov 2007 05:13:05 +0000 (21:13 -0800)

git-clean: Fix error message if clean.requireForce is not set.

It was distracting to see this error message:

clean.requireForce set and -n or -f not given; refusing to clean

even though clean.requireForce was not set at all. This patch distinguishes
the cases and gives a different message depending on whether the
configuration variable is not set or set to true.

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

Make git-clean a builtinShawn Bohrer Mon, 12 Nov 2007 01:48:47 +0000 (19:48 -0600)

Make git-clean a builtin

This replaces git-clean.sh with builtin-clean.c, and moves
git-clean.sh to the examples.

This also introduces a change in behavior when removing directories
explicitly specified as a path. For example currently:

1. When dir has only untracked files, these two behave differently:

$ git clean -n dir
$ git clean -n dir/

the former says "Would not remove dir/", while the latter would say
"Would remove dir/untracked" for all paths under it, but not the
directory itself.

With -d, the former would stop refusing, however since the user
explicitly asked to remove the directory the -d is no longer required.

2. When there are more parameters:

$ git clean -n dir foo
$ git clean -n dir/ foo

both cases refuse to remove dir/ unless -d is specified. Once again
since both cases requested to remove dir the -d is no longer required.

Thanks to Johannes Schindelin for the conversion to using the
parse-options API.

Signed-off-by: Shawn Bohrer <shawn.bohrer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Move gitk to its own subdirectoryJunio C Hamano Sat, 17 Nov 2007 18:51:16 +0000 (10:51 -0800)

Move gitk to its own subdirectory

This is to prepare for gitk i18n effort that makes gitk not a single file
project anymore. We may use subproject to bind git.git and gitk.git more
loosely in the future, but we do not want to require everybody to have
subproject aware git to be able to pull from git.git yet.

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