Michael Haggerty [Thu, 14 Jan 2010 05:54:49 +0000 (06:54 +0100)]
rebase -i: Improve consistency of commit count in generated commit messages
Use the numeral "2" instead of the word "two" when two commits are
being interactively squashed. This makes the treatment consistent
with that for higher numbers of commits.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:48 +0000 (06:54 +0100)]
t3404: Test the commit count in commit messages generated by "rebase -i"
The first line of commit messages generated for "rebase -i"
squash/fixup commits includes a count of the number of commits that
are being combined. Add machinery to check that this count is
correct, and add such a check to some test cases.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:47 +0000 (06:54 +0100)]
rebase -i: Introduce a constant AMEND
Add a constant AMEND holding the filename of the $DOTEST/amend file,
and document how this temporary file is used.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:46 +0000 (06:54 +0100)]
rebase -i: Introduce a constant AUTHOR_SCRIPT
Add a constant AUTHOR_SCRIPT, holding the filename of the
$DOTEST/author_script file, and document how this temporary file is
used.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:45 +0000 (06:54 +0100)]
rebase -i: Document how temporary files are used
Add documentation, inferred by reverse-engineering, about how
git-rebase--interactive.sh uses many of its temporary files.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:44 +0000 (06:54 +0100)]
rebase -i: Use symbolic constant $MSG consistently
The filename constant $MSG was previously used in some places and
written out literally in others.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:43 +0000 (06:54 +0100)]
rebase -i: Use "test -n" instead of "test ! -z"
It is a tiny bit simpler.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:42 +0000 (06:54 +0100)]
rebase -i: Inline expression
Inline expression when generating output rather than overwriting the
"sha1" local variable with a short SHA1.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:41 +0000 (06:54 +0100)]
rebase -i: Remove dead code
This branch of the "if" is only executed if $no_ff is empty, which
only happens if $1 was not '-n'. (This code has been dead since
1d25c8cf82eead72e11287d574ef72d3ebec0db1.)
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Thu, 14 Jan 2010 05:54:40 +0000 (06:54 +0100)]
rebase -i: Make the condition for an "if" more transparent
Test $no_ff separately rather than testing it indirectly by gluing it
onto a comparison of two SHA1s.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 13 Jan 2010 20:31:13 +0000 (12:31 -0800)]
Merge branch 'jc/checkout-merge-base'
* jc/checkout-merge-base:
rebase -i: teach --onto A...B syntax
rebase: fix --onto A...B parsing and add tests
"rebase --onto A...B" replays history on the merge base between A and B
"checkout A...B" switches to the merge base between A and B
Junio C Hamano [Wed, 13 Jan 2010 20:31:01 +0000 (12:31 -0800)]
Merge branch 'rs/maint-archive-match-pathspec'
* rs/maint-archive-match-pathspec:
archive: complain about path specs that don't match anything
Junio C Hamano [Wed, 13 Jan 2010 20:30:39 +0000 (12:30 -0800)]
Merge branch 'il/vcs-helper'
* il/vcs-helper:
Reset possible helper before reusing remote structure
Remove special casing of http, https and ftp
Support remote archive from all smart transports
Support remote helpers implementing smart transports
Support taking over transports
Refactor git transport options parsing
Pass unknown protocols to external protocol handlers
Support mandatory capabilities
Add remote helper debug mode
Conflicts:
Documentation/git-remote-helpers.txt
transport-helper.c
Junio C Hamano [Tue, 12 Jan 2010 20:09:54 +0000 (12:09 -0800)]
strbuf_addbuf(): allow passing the same buf to dst and src
If sb and sb2 are the same (i.e. doubling the string), the underlying
strbuf_add() can make sb2->buf invalid by calling strbuf_grow(sb) at
the beginning; if realloc(3) done by strbuf_grow() needs to move the
string, strbuf_add() will read from an already freed buffer.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 13 Jan 2010 19:58:56 +0000 (11:58 -0800)]
Merge branch 'cc/reset-more'
* cc/reset-more:
t7111: check that reset options work as described in the tables
Documentation: reset: add some missing tables
Fix bit assignment for CE_CONFLICTED
"reset --merge": fix unmerged case
reset: use "unpack_trees()" directly instead of "git read-tree"
reset: add a few tests for "git reset --merge"
Documentation: reset: add some tables to describe the different options
reset: improve mixed reset error message when in a bare repo
Junio C Hamano [Wed, 13 Jan 2010 19:58:34 +0000 (11:58 -0800)]
Merge branch 'nd/sparse'
* nd/sparse: (25 commits)
t7002: test for not using external grep on skip-worktree paths
t7002: set test prerequisite "external-grep" if supported
grep: do not do external grep on skip-worktree entries
commit: correctly respect skip-worktree bit
ie_match_stat(): do not ignore skip-worktree bit with CE_MATCH_IGNORE_VALID
tests: rename duplicate t1009
sparse checkout: inhibit empty worktree
Add tests for sparse checkout
read-tree: add --no-sparse-checkout to disable sparse checkout support
unpack-trees(): ignore worktree check outside checkout area
unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
unpack-trees.c: generalize verify_* functions
unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
Introduce "sparse checkout"
dir.c: export excluded_1() and add_excludes_from_file_1()
excluded_1(): support exclude files in index
unpack-trees(): carry skip-worktree bit over in merged_entry()
Read .gitignore from index if it is skip-worktree
Avoid writing to buffer in add_excludes_from_file_1()
...
Conflicts:
.gitignore
Documentation/config.txt
Documentation/git-update-index.txt
Makefile
entry.c
t/t7002-grep.sh
Junio C Hamano [Wed, 13 Jan 2010 08:12:54 +0000 (00:12 -0800)]
t7502: test commit.status, --status and --no-status
Make sure that the status information:
- is shown as before without configuration nor command line option;
- is shown if commit.status is set to true and no command line option
is given, or --status is explicitly given;
- is not shown if commit.status is set to false and no command line
option is given, or --no-status is explicitly given.
Also make sure that the way lines taken from the custom --template appear
in the log message editor is not changed at all.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 13 Jan 2010 03:21:46 +0000 (19:21 -0800)]
grep: rip out pessimization to use fixmatch()
Even when running without the -F (--fixed-strings) option, we checked the
pattern and used fixmatch() codepath when it does not contain any regex
magic. Finding fixed strings with strstr() surely must be faster than
running the regular expression crud.
Not so. It turns out that on some libc implementations, using the
regcomp()/regexec() pair is a lot faster than running strstr() and
strcasestr() the fixmatch() codepath uses. Drop the optimization and use
the fixmatch() codepath only when the user explicitly asked for it with
the -F option.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Wed, 13 Jan 2010 03:06:41 +0000 (19:06 -0800)]
grep: rip out support for external grep
We still allow people to pass --[no-]ext-grep on the command line,
but the option is ignored.
Signed-off-by: Junio C Hamano <redacted>
James P. Howard, II [Mon, 7 Dec 2009 22:45:27 +0000 (17:45 -0500)]
commit: support commit.status, --status, and --no-status
A new configuration variable commit.status, and new command line
options --status, and --no-status control whether or not the git
status information is included in the commit message template
when using an editor to prepare the commit message. It does not
affect the effects of a user's commit.template settings.
Signed-off-by: James P. Howard, II <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 23:48:38 +0000 (15:48 -0800)]
Merge branch 'maint'
* maint:
remote-curl: Fix Accept header for smart HTTP connections
grep: -L should show empty files
rebase--interactive: Ignore comments and blank lines in peek_next_command
Matthieu Moy [Thu, 7 Jan 2010 14:54:10 +0000 (15:54 +0100)]
lockfile: show absolute filename in unable_to_lock_message
When calling a git command from a subdirectory and a file locking fails,
the user will get a path relative to the root of the worktree, which is
invalid from the place where the command is ran. Make it easy for the
user to know which file it is.
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Suder [Tue, 12 Jan 2010 22:34:52 +0000 (23:34 +0100)]
improved rev_is_descendant_of_branch() function
Jakub Suder [Tue, 12 Jan 2010 22:04:56 +0000 (23:04 +0100)]
added temporary test dirs to gitignore
Jakub Suder [Tue, 12 Jan 2010 22:04:25 +0000 (23:04 +0100)]
added tests for recent changes
Johannes Schindelin [Thu, 10 Sep 2009 15:25:57 +0000 (17:25 +0200)]
Introduce <branch>@{upstream} notation
A new notation '<branch>@{upstream}' refers to the branch <branch> is set
to build on top of. Missing <branch> (i.e. '@{upstream}') defaults to the
current branch.
This allows you to run, for example,
for l in list of local branches
do
git log --oneline --left-right $l...$l@{upstream}
done
to inspect each of the local branches you are interested in for the
divergence from its upstream.
Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
Jakub Suder [Tue, 12 Jan 2010 21:38:34 +0000 (22:38 +0100)]
fixed bug in commit message for split
Jakub Suder [Tue, 12 Jan 2010 21:38:21 +0000 (22:38 +0100)]
changed alias for --prefix from -p to -P
Bart Trojanowski [Sat, 9 Jan 2010 00:54:39 +0000 (19:54 -0500)]
hg-to-git: fix COMMITTER type-o
This script passes the author and committer to git-commit via environment
variables, but it was missing the seccond T of COMMITTER in a few places.
Signed-off-by: Bart Trojanowski <redacted>
Acked-by: Stelian Pop <redacted>
Signed-off-by: Junio C Hamano <redacted>
Matthieu Moy [Tue, 12 Jan 2010 09:54:44 +0000 (10:54 +0100)]
Be more user-friendly when refusing to do something because of conflict.
Various commands refuse to run in the presence of conflicts (commit,
merge, pull, cherry-pick/revert). They all used to provide rough, and
inconsistant error messages.
A new variable advice.resolveconflict is introduced, and allows more
verbose messages, pointing the user to the appropriate solution.
For commit, the error message used to look like this:
$ git commit
foo.txt: needs merge
foo.txt: unmerged (
c34a92682e0394bc0d6f4d4a67a8e2d32395c169)
foo.txt: unmerged (
3afcd75de8de0bb5076942fcb17446be50451030)
foo.txt: unmerged (
c9785d77b76dfe4fb038bf927ee518f6ae45ede4)
error: Error building trees
The "need merge" line is given by refresh_cache. We add the IN_PORCELAIN
option to make the output more consistant with the other porcelain
commands, and catch the error in return, to stop with a clean error
message. The next lines were displayed by a call to cache_tree_update(),
which is not reached anymore if we noticed the conflict.
The new output looks like:
U foo.txt
fatal: 'commit' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.
Pull is slightly modified to abort immediately if $GIT_DIR/MERGE_HEAD
exists instead of waiting for merge to complain.
The behavior of merge and the test-case are slightly modified to reflect
the usual flow: start with conflicts, fix them, and afterwards get rid of
MERGE_HEAD, with different error messages at each stage.
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Ilari Liusvaara [Tue, 12 Jan 2010 19:53:29 +0000 (20:53 +0100)]
Improve error message when a transport helper was not found
Perviously, the error message was:
git: 'remote-foo' is not a git-command. See 'git --help'.
By not treating the transport helper as a git command, a more suitable
error is reported:
fatal: Unable to find remote helper for 'foo'
Signed-off-by: Ilari Liusvaara <redacted>
Signed-off-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
Shawn O. Pearce [Tue, 12 Jan 2010 17:54:04 +0000 (09:54 -0800)]
remote-curl: Fix Accept header for smart HTTP connections
We actually expect to see an application/x-git-upload-pack-result
but we lied and said we Accept *-response. This was a typo on my
part when I was writing the code.
Fortunately the wrong Accept header had no real impact, as the
deployed git-http-backend servers were not testing the Accept
header before they returned their content.
Signed-off-by: Shawn O. Pearce <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Tue, 12 Jan 2010 15:38:36 +0000 (16:38 +0100)]
rebase-i: Ignore comments and blank lines in peek_next_command
Previously, blank lines and/or comments within a series of
squash/fixup commands would confuse "git rebase -i" into thinking that
the series was finished. It would therefore require the user to edit
the commit message for the squash/fixup commits seen so far. Then,
after continuing, it would ask the user to edit the commit message
again.
Ignore comments and blank lines within a group of squash/fixup
commands, allowing them to be processed in one go.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Tue, 12 Jan 2010 15:38:35 +0000 (16:38 +0100)]
lib-rebase: Allow comments and blank lines to be added to the rebase script
(For testing "rebase -i"): Support new action types in $FAKE_LINES to
allow comments and blank lines to be added to the "rebase -i" command
list.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Tue, 12 Jan 2010 15:38:34 +0000 (16:38 +0100)]
lib-rebase: Provide clearer debugging info about what the editor did
(For testing "rebase -i"): Output the "rebase -i" command script
before and after the edits, to make it clearer what the editor did.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Markus Heidelberg [Sat, 9 Jan 2010 22:11:12 +0000 (23:11 +0100)]
gitk: Adjust two equal strings which differed in whitespace
There were the two strings "SHA1 ID: " and "SHA1 ID:" as description
for the SHA1 search textbox. Change it to two equal strings, the
space is now outside of the translated string.
Furthermore the German translation wasn't unique, but "SHA1:" resp.
"SHA1-Hashwert:". The former was displayed after initialisation, the
latter after changes to the textbox, for example when clearing the text.
But it was too long to be displayed fully, so use a shorter translation.
Signed-off-by: Markus Heidelberg <redacted>
Signed-off-by: Paul Mackerras <redacted>
Kirill Smelkov [Tue, 5 Jan 2010 12:44:54 +0000 (15:44 +0300)]
gitk: Display submodule diffs with appropriate encoding
Previously, when submodule commit headings contained non-latin-1
characters, they were displayed incorrectly in gitk, because $line was
not properly decoded, for example:
----------------------------- Documentation/Dokko -----------------------------
Submodule Documentation/Dokko
2ca20c7..
0ea204d:
> Ð
\9fÑ
\80оÑ
\82околÑ
\8b Ñ
\81опÑ
\80Ñ
\8fжениÑ
\8f Ð
\98Ð
\9cС "Ð
\9cоÑ
\81Ñ
\82ик-21631" (Ð
\9bÐ
\982 и Сандал)
> hardware: докÑ
\83менÑ
\82аÑ
\86иÑ
\8f на InnoDisk SATA 10000
> hardware: докÑ
\83менÑ
\82аÑ
\86иÑ
\8f на IEI PCISA-6770E2 v3.0
> hardware: докÑ
\83менÑ
\82аÑ
\86иÑ
\8f на Fastwel NIB941
> hardware: докÑ
\83менÑ
\82аÑ
\86иÑ
\8f на IEI IPX-9S
> hardware: докÑ
\83менÑ
\82аÑ
\86иÑ
\8f на Hirschmann 5TX-EEC
instead of
----------------------------- Documentation/Dokko -----------------------------
Submodule Documentation/Dokko
2ca20c7..
0ea204d:
> Протоколы сопряжения ИМС "Мостик-21631" (ЛИ2 и Сандал)
> hardware: документация на InnoDisk SATA 10000
> hardware: документация на IEI PCISA-6770E2 v3.0
> hardware: документация на Fastwel NIB941
> hardware: документация на IEI IPX-9S
> hardware: документация на Hirschmann 5TX-EEC
This fixes it.
Signed-off-by: Kirill Smelkov <redacted>
Signed-off-by: Paul Mackerras <redacted>
Dave Dulson [Sun, 3 Jan 2010 14:56:25 +0000 (14:56 +0000)]
gitk: Fix display of newly-created tags
If the user creates a tag with the "create tag" dialog in gitk and
then clicks on the newly-created tag, its contents don't get
displayed. The reason is that rereadrefs hasn't been called, meaning
the tag doesn't exist in $tagobjid. This causes the cat-file to fail.
Instead of using $tagobjid, pass the $tag directly, ensuring the tag
contents are populated correctly.
Signed-off-by: David Dulson <redacted>
Signed-off-by: Paul Mackerras <redacted>
Dave Dulson [Sun, 3 Jan 2010 14:55:52 +0000 (14:55 +0000)]
gitk: Enable gitk to create tags with messages
Currently, tags created using the "create tag" dialog in gitk are
always lightweight tags, i.e., they don't have any annotation
(message). This enables the user to specify a message; if they do,
gitk will create an unsigned, annotated tag object.
Signed-off-by: David Dulson <redacted>
Signed-off-by: Paul Mackerras <redacted>
Miklos Vajna [Mon, 14 Dec 2009 13:12:25 +0000 (14:12 +0100)]
gitk: Update Hungarian translation
Signed-off-by: Miklos Vajna <redacted>
Signed-off-by: Paul Mackerras <redacted>
Laszlo Papp [Tue, 12 Jan 2010 10:40:41 +0000 (21:40 +1100)]
gitk: Add Hungarian translation
[Junio C Hamano <redacted>: Fix a couple of wrapped lines]
Signed-off-by: Laszlo Papp <redacted>
Signed-off-by: Paul Mackerras <redacted>
Junio C Hamano [Tue, 12 Jan 2010 05:16:26 +0000 (21:16 -0800)]
strbuf.c: remove unused function
strbuf_tolower() is not used anywhere.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 05:17:56 +0000 (21:17 -0800)]
sha1_file.c: remove unused function
has_pack_file() is not used anywhere.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 05:11:22 +0000 (21:11 -0800)]
mailmap.c: remove unused function
map_email() is not used anywhere.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:32:29 +0000 (22:32 -0800)]
utf8.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:31:58 +0000 (22:31 -0800)]
submodule.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:31:06 +0000 (22:31 -0800)]
quote.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:30:36 +0000 (22:30 -0800)]
remote-curl.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:29:35 +0000 (22:29 -0800)]
read-cache.c: mark file-local functions static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:28:45 +0000 (22:28 -0800)]
parse-options.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:27:31 +0000 (22:27 -0800)]
entry.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:26:08 +0000 (22:26 -0800)]
http.c: mark file-local functions static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 08:56:15 +0000 (00:56 -0800)]
Merge branch 'jc/maint-1.6.4-grep-lookahead' into jc/maint-grep-lookahead
* jc/maint-1.6.4-grep-lookahead:
grep: optimize built-in grep by skipping lines that do not hit
This needs to be an evil merge as fixmatch() changed signature since
5183bf6 (grep: Allow case insensitive search of fixed-strings,
2009-11-06).
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Mon, 11 Jan 2010 06:39:36 +0000 (22:39 -0800)]
grep: optimize built-in grep by skipping lines that do not hit
The internal "grep" engine we use checks for hits line-by-line, instead of
letting the underlying regexec()/fixmatch() routines scan for the first
match from the rest of the buffer. This was a major source of overhead
compared to the external grep.
Introduce a "look-ahead" mechanism to find the next line that would
potentially match by using regexec()/fixmatch() in the remainder of the
text to skip unmatching lines, and use it when the query criteria is
simple enough (i.e. punt for an advanced grep boolean expression like
"lines that have both X and Y but not Z" for now) and we are not running
under "-v" (aka "--invert-match") option.
Note that "-L" (aka "--files-without-match") is not a reason to disable
this optimization. Under the option, we are interested if the file has
any hit at all, and that is what we determine reliably with or without the
optimization.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 08:22:23 +0000 (00:22 -0800)]
grep: -L should show empty files
The -L (--files-without-match) option is supposed to show paths that
produced no matches. When running the internal grep on work tree files,
however, we had an optimization to just return on zero-sized files,
without doing anything.
This optimization doesn't matter too much in practice (a tracked empty
file must be rare, or there is something wrong with your project); to
produce results consistent with GNU grep, we should stop the optimization
and show empty files as not having the given pattern.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:23:35 +0000 (22:23 -0800)]
pretty.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 06:21:18 +0000 (22:21 -0800)]
builtin-rev-list.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Tue, 12 Jan 2010 05:20:55 +0000 (21:20 -0800)]
bisect.c: mark file-local function static
Signed-off-by: Junio C Hamano <redacted>
Matthieu Moy [Mon, 11 Jan 2010 21:09:44 +0000 (22:09 +0100)]
push: spell 'Note about fast-forwards' section name correctly in error message.
The error message in case of non-fast forward points to 'git push
--help', but used to talk about a section 'non-fast-forward', while the
actual section name is 'Note about fast-forwards'.
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Michael Haggerty [Mon, 11 Jan 2010 15:56:45 +0000 (16:56 +0100)]
rebase--interactive: Ignore comments and blank lines in peek_next_command
Previously, blank lines and/or comments within a series of
squash/fixup commands would confuse "git rebase -i" into thinking that
the series was finished. It would therefore require the user to edit
the commit message for the squash/fixup commits seen so far. Then,
after continuing, it would ask the user to edit the commit message
again.
Ignore comments and blank lines within a group of squash/fixup
commands, allowing them to be processed in one go.
Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
Nguyễn Thái Ngọc Duy [Mon, 11 Jan 2010 10:41:01 +0000 (17:41 +0700)]
Add missing #include to support TIOCGWINSZ on Solaris
On Linux TIOCGWINSZ is defined somehwere in ioctl.h, which is already
included. On Solaris we also need to include termios.h. Without this
term_columns() in help.c will think TIOCGWINSZ is not supported and
always return 80 columns.
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
Peter Collingbourne [Mon, 11 Jan 2010 02:59:54 +0000 (02:59 +0000)]
Remove empty directories when checking out a commit with fewer submodules
Change the unlink_entry function to use rmdir to remove submodule
directories. Currently we try to use unlink, which will never succeed.
Of course rmdir will only succeed for empty (i.e. not checked out)
submodule directories. Behaviour if a submodule is checked out stays
essentially the same: print a warning message and keep the submodule
directory.
Signed-off-by: Peter Collingbourne <redacted>
Signed-off-by: Junio C Hamano <redacted>
Steven Drake [Mon, 11 Jan 2010 22:34:34 +0000 (11:34 +1300)]
Use $(git rev-parse --show-toplevel) in cd_to_toplevel().
rev-parse --show-toplevel gives the absolute (aka "physical") path of the
toplevel directory and is more portable as 'cd -P' is not supported by all
shell implementations.
This is also closer to what setup_work_tree() does.
Signed-off-by: Steven Drake <redacted>
Signed-off-by: Junio C Hamano <redacted>
Steven Drake [Mon, 11 Jan 2010 22:33:48 +0000 (11:33 +1300)]
Add 'git rev-parse --show-toplevel' option.
Shows the absolute path of the top-level working directory.
Signed-off-by: Steven Drake <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 25 Dec 2009 23:51:32 +0000 (15:51 -0800)]
rerere forget path: forget recorded resolution
After you find out an earlier resolution you told rerere to use was a
mismerge, there is no easy way to clear it. A new subcommand "forget" can
be used to tell git to forget a recorded resolution, so that you can redo
the merge from scratch.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 25 Dec 2009 22:34:53 +0000 (14:34 -0800)]
rerere: refactor rerere logic to make it independent from I/O
This splits the handle_file() function into in-core part and I/O
parts of the logic to create the preimage, so that we can compute
the conflict identifier without having to use temporary files.
Earlier, I thought the output from handle_file() should also be
refactored, but it is always about writing preimage (or thisimage)
that is used for later three-way merge, so it is saner to keep it
to always write to FILE *.
Signed-off-by: Junio C Hamano <redacted>
Thomas Rast [Sun, 10 Jan 2010 20:29:34 +0000 (21:29 +0100)]
Documentation: emphasise 'git shortlog' in its synopsis
The accepted style in the SYNOPSIS section is for a command to be
'emphasised'. Do so for the git-shortlog(1) manpage.
Signed-off-by: Thomas Rast <redacted>
Johannes Sixt [Sun, 10 Jan 2010 13:11:22 +0000 (14:11 +0100)]
start_command: detect execvp failures early
Previously, failures during execvp could be detected only by
finish_command. However, in some situations it is beneficial for the
parent process to know earlier that the child process will not run.
The idea to use a pipe to signal failures to the parent process and
the test case were lifted from patches by Ilari Liusvaara.
Signed-off-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
Johannes Sixt [Sun, 10 Jan 2010 13:08:45 +0000 (14:08 +0100)]
run-command: move wait_or_whine earlier
We want to reuse it from start_command.
Signed-off-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
Johannes Sixt [Sun, 10 Jan 2010 13:07:52 +0000 (14:07 +0100)]
start_command: report child process setup errors to the parent's stderr
When the child process's environment is set up in start_command(), error
messages were written to wherever the parent redirected the child's stderr
channel. However, even if the parent redirected the child's stderr, errors
during this setup process, including the exec itself, are usually an
indication of a problem in the parent's environment. Therefore, the error
messages should go to the parent's stderr.
Redirection of the child's error messages is usually only used to redirect
hook error messages during client-server exchanges. In these cases, hook
setup errors could be regarded as information leak.
This patch makes a copy of stderr if necessary and uses a special
die routine that is used for all die() calls in the child that sends the
errors messages to the parent's stderr.
The trace call that reported a failed execvp is removed (because it writes
to stderr) and replaced by die_errno() with special treatment of ENOENT.
The improvement in the error message can be seen with this sequence:
mkdir .git/hooks/pre-commit
git commit
Previously, the error message was
error: cannot run .git/hooks/pre-commit: No such file or directory
and now it is
fatal: cannot exec '.git/hooks/pre-commit': Permission denied
Signed-off-by: Johannes Sixt <redacted>
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 8 Jan 2010 16:01:10 +0000 (08:01 -0800)]
ident.c: treat $EMAIL as giving user.email identity explicitly
The environment variable EMAIL has been honored since
28a94f8 (Fall back
to $EMAIL for missing GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAIL,
2007-04-28) as the end-user's wish to use the address as the identity.
When we use it, we should say we are explicitly given email by the user.
Signed-off-by: Junio C Hamano <redacted>
Junio C Hamano [Fri, 8 Jan 2010 15:39:11 +0000 (07:39 -0800)]
ident.c: check explicit identity for name and email separately
bb1ae3f (commit: Show committer if automatic, 2008-05-04) added a logic to
check both name and email were given explicitly by the end user, but it
assumed that fmt_ident() is never called before git_default_user_config()
is called, which was fragile. The former calls setup_ident() and fills
the "default" name and email, so the check in the config parser would have
mistakenly said both are given even if only user.name was provided.
Make the logic more robust by keeping track of name and email separately.
Signed-off-by: Junio C Hamano <redacted>
Acked-by: Santi Béjar <redacted>
Junio C Hamano [Sun, 10 Jan 2010 16:53:04 +0000 (08:53 -0800)]
Merge branch 'tr/http-updates'
* tr/http-updates:
Remove http.authAny
Allow curl to rewind the RPC read buffer
Add an option for using any HTTP authentication scheme, not only basic
http: maintain curl sessions
Junio C Hamano [Sun, 10 Jan 2010 16:52:53 +0000 (08:52 -0800)]
Merge branch 'jk/maint-1.6.5-reset-hard'
* jk/maint-1.6.5-reset-hard:
reset: unbreak hard resets with GIT_WORK_TREE
Junio C Hamano [Sun, 10 Jan 2010 16:52:45 +0000 (08:52 -0800)]
Merge branch 'jk/push-to-delete'
* jk/push-to-delete:
builtin-push: add --delete as syntactic sugar for :foo
Junio C Hamano [Sun, 10 Jan 2010 16:52:41 +0000 (08:52 -0800)]
Merge branch 'mm/config-path'
* mm/config-path:
builtin-config: add --path option doing ~ and ~user expansion.
Junio C Hamano [Sun, 10 Jan 2010 16:52:37 +0000 (08:52 -0800)]
Merge branch 'pm/cvs-environ'
* pm/cvs-environ:
CVS Server: Support reading base and roots from environment
Junio C Hamano [Sun, 10 Jan 2010 16:52:32 +0000 (08:52 -0800)]
Merge branch 'tr/maint-1.6.5-bash-prompt-show-submodule-changes'
* tr/maint-1.6.5-bash-prompt-show-submodule-changes:
bash completion: factor submodules into dirty state
Junio C Hamano [Sun, 10 Jan 2010 16:52:24 +0000 (08:52 -0800)]
Merge branch 'bg/maint-remote-update-default'
* bg/maint-remote-update-default:
Fix "git remote update" with remotes.defalt set
Junio C Hamano [Sun, 10 Jan 2010 16:52:10 +0000 (08:52 -0800)]
Merge branch 'mm/diag-path-in-treeish'
* mm/diag-path-in-treeish:
Detailed diagnosis when parsing an object name fails.
Junio C Hamano [Sun, 10 Jan 2010 16:52:06 +0000 (08:52 -0800)]
Merge branch 'fc/opt-quiet-gc-reset'
* fc/opt-quiet-gc-reset:
General --quiet improvements
Thomas Rast [Sun, 10 Jan 2010 12:05:04 +0000 (13:05 +0100)]
Documentation: show-files is now called git-ls-files
Amazingly, a reference to 'show files' survived from the core command
documentation introduced in
c64b9b8 (Reference documentation for the
core git commands., 2005-05-05)!
However, the tool is now called git-ls-files.
Signed-off-by: Thomas Rast <redacted>
Jonathan Nieder [Sun, 10 Jan 2010 03:01:21 +0000 (21:01 -0600)]
Documentation: tiny git config manual tweaks
As a verb, 'setup' is spelled 'set up'. “diff commands such as
diff-files” scans better without a comma. Clarify that shallow
and deep are special non-boolean values for format.thread rather
than boolean values with some other name.
Signed-off-by: Jonathan Nieder <redacted>
Signed-off-by: Thomas Rast <redacted>
Jonathan Nieder [Sun, 10 Jan 2010 02:59:41 +0000 (20:59 -0600)]
Documentation: git gc packs refs by default now
In commit
56752391 (Make "git gc" pack all refs by default,
2007-05-24), 'git gc' was changed to run pack-refs by default
Versions before v1.5.1.2 cannot clone repos with packed refs over
http, and versions before v1.4.4 cannot handled packed refs at
all, but more recent git should have no problems. Try to make
this more clear in the git-config manual.
The analagous passage in git-gc.txt was updated already with
commit
fe2128a (Change git-gc documentation to reflect
gc.packrefs implementation., 2008-01-09).
Signed-off-by: Jonathan Nieder <redacted>
Signed-off-by: Thomas Rast <redacted>
Jakub Suder [Sat, 9 Jan 2010 22:01:39 +0000 (23:01 +0100)]
fix for subtree split not finding proper base for new commits
Jakub Suder [Sat, 9 Jan 2010 18:56:05 +0000 (19:56 +0100)]
allow using --branch with existing branches if it makes sense
Jakub Suder [Sat, 9 Jan 2010 18:55:35 +0000 (19:55 +0100)]
added -m/--message option for setting merge commit message
Thomas Rast [Sat, 9 Jan 2010 23:33:00 +0000 (00:33 +0100)]
Documentation: spell 'git cmd' without dash throughout
The documentation was quite inconsistent when spelling 'git cmd' if it
only refers to the program, not to some specific invocation syntax:
both 'git-cmd' and 'git cmd' spellings exist.
The current trend goes towards dashless forms, and there is precedent
in
647ac70 (git-svn.txt: stop using dash-form of commands.,
2009-07-07) to actively eliminate the dashed variants.
Replace 'git-cmd' with 'git cmd' throughout, except where git-shell,
git-cvsserver, git-upload-pack, git-receive-pack, and
git-upload-archive are concerned, because those really live in the
$PATH.
Thomas Rast [Thu, 7 Jan 2010 16:49:12 +0000 (17:49 +0100)]
Documentation: format full commands in typewriter font
Use `code snippet` style instead of 'emphasis' for `git cmd ...`
according to the following rules:
* The SYNOPSIS sections are left untouched.
* If the intent is that the user type the command exactly as given, it
is `code`.
If the user is only loosely referred to a command and/or option, it
remains 'emphasised'.
Signed-off-by: Thomas Rast <redacted>
Junio C Hamano [Sun, 10 Jan 2010 08:52:04 +0000 (00:52 -0800)]
Merge branch 'maint'
* maint:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
Documentation: tiny git config manual tweaks
Documentation: git gc packs refs by default now
checkout -m: do not try to fall back to --merge from an unborn branch
Junio C Hamano [Sun, 10 Jan 2010 08:51:54 +0000 (00:51 -0800)]
Merge branch 'maint-1.6.2' into maint
* maint-1.6.2:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
Conflicts:
diff.c
Junio C Hamano [Sun, 10 Jan 2010 08:49:47 +0000 (00:49 -0800)]
Merge branch 'maint-1.6.1' into maint-1.6.2
* maint-1.6.1:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
branch: die explicitly why when calling "git branch [-a|-r] branchname".
textconv: stop leaking file descriptors
commit: --cleanup is a message option
git count-objects: handle packs bigger than 4G
t7102: make the test fail if one of its check fails
Conflicts:
diff.c
Junio C Hamano [Sun, 10 Jan 2010 08:48:47 +0000 (00:48 -0800)]
Merge branch 'maint-1.6.0' into maint-1.6.1
* maint-1.6.0:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
branch: die explicitly why when calling "git branch [-a|-r] branchname".
Erik Faye-Lund [Sat, 9 Jan 2010 14:13:28 +0000 (15:13 +0100)]
daemon: consider only address in kill_some_child()
kill_some_child() compares the entire sockaddr_storage
structure (with the pad-bits zeroed out) when trying to
find out if connections originate from the same host.
However, sockaddr_storage contains the port-number for
the connection (which varies between connections), so
the comparison always fails.
Change the code so we only consider the host-address,
by introducing the addrcmp()-function that inspects
the address family and compare as appropriate.
Signed-off-by: Erik Faye-Lund <redacted>
Signed-off-by: Junio C Hamano <redacted>
Brad King [Sat, 9 Jan 2010 03:36:41 +0000 (22:36 -0500)]
Handle relative paths in submodule .git files
Commit
842abf0 (Teach resolve_gitlink_ref() about the .git file, 2008-02-20)
taught resolve_gitlink_ref() to call read_gitfile_gently() to resolve .git
files. In this commit teach read_gitfile_gently() to interpret a relative
path in a .git file with respect to the file location.
This change allows update-index to recognize a submodule that uses a relative
path in its .git file. It previously failed because the relative path was
wrongly interpreted with respect to the superproject directory.
Signed-off-by: Brad King <redacted>
Signed-off-by: Junio C Hamano <redacted>
Brad King [Sat, 9 Jan 2010 03:36:40 +0000 (22:36 -0500)]
Test update-index for a gitlink to a .git file
Check that update-index recognizes a submodule that uses a .git file.
Currently it works when the .git file specifies an absolute path, but
not when it specifies a relative path.
Signed-off-by: Brad King <redacted>
Signed-off-by: Junio C Hamano <redacted>
Christian Couder [Sat, 9 Jan 2010 05:10:05 +0000 (06:10 +0100)]
help: fix configured help format taking over command line one
Since commit
7c3baa9 (help -a: do not unnecessarily look for a
repository, 2009-09-04), the help format that is passed as a
command line option is not used if an help format has been
configured. This patch fixes that.
Signed-off-by: Christian Couder <redacted>
Signed-off-by: Junio C Hamano <redacted>
Thiago Farina [Fri, 8 Jan 2010 22:45:08 +0000 (17:45 -0500)]
string-list: rename the include guard to STRING_LIST_H
Signed-off-by: Thiago Farina <redacted>
Signed-off-by: Junio C Hamano <redacted>
Christian Couder [Fri, 8 Jan 2010 04:45:10 +0000 (05:45 +0100)]
t7111: check that reset options work as described in the tables
Some previous patches added some tables to the "git reset"
documentation. These tables describe the behavior of "git reset"
depending on the option it is passed and the state of the files
in the working tree, the index, HEAD and the target commit.
This patch adds some tests to make sure that the tables describe
the behavior of "git reset".
Signed-off-by: Christian Couder <redacted>
Signed-off-by: Junio C Hamano <redacted>
Tay Ray Chuan [Fri, 8 Jan 2010 02:12:45 +0000 (10:12 +0800)]
transport-helper.c::push_refs(): emit "no refs" error message
Emit an error message when remote_refs is not set.
This behaviour is consistent with that of builtin-send-pack.c and
http-push.c.
Signed-off-by: Tay Ray Chuan <redacted>
Signed-off-by: Junio C Hamano <redacted>