Instead of listing short option (e.g. "-U<n>") as a shorthand for its
longer counterpart (e.g. "--unified=<n>"), list the synonyms together. It
saves one indirection to find what the reader wants.
Signed-off-by: jidanni <jidanni@jidanni.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Teemu Likonen [Mon, 29 Dec 2008 08:03:09 +0000 (10:03 +0200)]
Fix the building of gitman.info document
"makeinfo" failed to generate gitman.info from gitman.texi input file
because the combined manual page file contains several nodes with the
same name (DESCRIPTION, OPTIONS, SEE ALSO etc.). An Info document should
contain unique node names.
This patch creates a simple (read: ugly) work-around by suppressing the
validation of the final Info file. Jumping to nodes in the Info document
still works but they are not very useful. Common man-page headings like
DESCRIPTION and OPTIONS appear in the Info node list and they point to
the man page where they appear first (that is git-add currently).
Also, this patch adds directory-entry information for Info document to
make the document appear in the top-level Info directory.
Signed-off-by: Teemu Likonen <tlikonen@iki.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Teemu Likonen [Mon, 29 Dec 2008 08:03:08 +0000 (10:03 +0200)]
Fix the building of user-manual.texi and gitman.texi documents
Previously "docbook2x-texi" failed to generate user-manual.texi and
gitman.texi files from .xml input files because "iconv" stopped at
"illegal input sequence" error. This was due to some UTF-8 octets in the
input .xml files. This patch adds option --encoding=UTF-8 for
"docbook2x-texi" to allow the building of .texi files complete.
Signed-off-by: Teemu Likonen <tlikonen@iki.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Devin Doucette [Sat, 27 Dec 2008 09:39:31 +0000 (02:39 -0700)]
gitweb: Fix export check in git_get_projects_list
When $filter was empty, the path passed to check_export_ok would
contain an extra '/', which some implementations of export_auth_hook
are sensitive to.
It makes more sense to fix this here than to handle the special case
in each implementation of export_auth_hook.
Signed-off-by: Devin Doucette <devin@doucette.cc> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 27 Dec 2008 22:25:14 +0000 (14:25 -0800)]
Merge branch 'maint'
* maint:
git-send-email.txt: move --format-patch paragraph to a proper location
git-shortlog.txt: improve documentation about .mailmap files
pretty: support multiline subjects with format:
pretty: factor out format_subject()
pretty: factor out skip_empty_lines()
merge-file: handle freopen() failure
daemon: cleanup: factor out xstrdup_tolower()
daemon: cleanup: replace loop with if
daemon: handle freopen() failure
describe: Avoid unnecessary warning when using --all
Adeodato Simó [Sat, 27 Dec 2008 18:23:30 +0000 (19:23 +0100)]
git-shortlog.txt: improve documentation about .mailmap files
The description on .mailmap made it seem like they are only useful for
commits with a wrong address for an author, but they are about fixing the
real name. Explain this better in the text, and replace the existing
example with a new one that hopefully makes things clearer.
Signed-off-by: Adeodato Simó <dato@net.com.org.es> Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Sat, 27 Dec 2008 00:49:21 +0000 (01:49 +0100)]
pretty: support multiline subjects with format:
git log --pretty=format:%s (and tformat:) used to display the first
line of the subject, unlike the other --pretty options, which would
construct a subject line from all lines of the first paragraph of
the commit message.
For consistency and increased code reuse, change format: to do the
same as the other options.
René Scharfe [Sat, 27 Dec 2008 00:39:35 +0000 (01:39 +0100)]
pretty: factor out format_subject()
The next patch will use it.
In the version that was factored out, we can't rely on the len of the
struct strbuf to find out if a line separator needs to be added, as
it might already contain something. Add a guard variable ("first")
instead.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Fri, 26 Dec 2008 10:01:57 +0000 (11:01 +0100)]
daemon: cleanup: replace loop with if
Replace a loop around an enter_repo() call, which was used to retry
a single time with a different parameter in case the first call fails,
with two calls and an if. This is shorter and cleaner.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shawn O. Pearce [Fri, 26 Dec 2008 22:02:01 +0000 (14:02 -0800)]
describe: Avoid unnecessary warning when using --all
In 212945d4 ("Teach git-describe to verify annotated tag names
before output") git-describe learned how to output a warning if
an annotated tag object was matched but its internal name doesn't
match the local ref name.
However, "git describe --all" causes the local ref name to be
prefixed with "tags/", so we need to skip over this prefix before
comparing the local ref name with the name recorded inside of the
tag object.
Patch-by: René Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 24 Dec 2008 08:14:14 +0000 (00:14 -0800)]
Merge branch 'js/rebase-i-p'
* js/rebase-i-p:
rebase -i -p: leave a --cc patch when a merge could not be redone
rebase -i -p: Fix --continue after a merge could not be redone
Show a failure of rebase -p if the merge had a conflict
Robin Rosenberg [Sun, 21 Dec 2008 22:17:12 +0000 (14:17 -0800)]
git-revert: record the parent against which a revert was made
As described in Documentation/howto/revert-a-faulty-merge.txt, re-merging
from a previously reverted a merge of a side branch may need a revert of
the revert beforehand. Record against which parent the revert was made in
the commit, so that later the user can figure out what went on.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 22 Dec 2008 02:31:12 +0000 (18:31 -0800)]
Merge git://git.kernel.org/pub/scm/gitk/gitk
* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Force the focus to the main window on Windows
gitk: Allow unbalanced quotes/braces in commit headers
gitk: Update German translation
gitk: Mark forgotten strings (header sentence parts in color chooser) for translation
gitk: Ensure that "Reset branch" menu entry is enabled
gitk: Use check-buttons' -text property instead of separate labels
gitk: Map / to focus the search box
gitk: Fix bugs in blaming code
Johannes Sixt [Thu, 18 Dec 2008 07:30:49 +0000 (08:30 +0100)]
gitk: Force the focus to the main window on Windows
On msysGit, the focus is first on the (Tk) console. This console is then
hidden, but keeps the focus. Work around that by forcing the focus onto
the gitk window.
This fixes msysGit issue 14. Diagnosed and originally fixed by
Johannes Schindelin.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Kevin Ballard [Thu, 18 Dec 2008 09:26:48 +0000 (01:26 -0800)]
gitk: Allow unbalanced quotes/braces in commit headers
When parsing commits, gitk treats the headers of the commit as tcl
lists. This causes errors if the header contains an unbalanced quote
or open brace. Splitting the line on spaces allows us to treat it as
a set of words instead of as a tcl list, which prevents errors.
Signed-off-by: Kevin Ballard <kevin@sb.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Johannes Sixt [Wed, 3 Dec 2008 12:43:20 +0000 (13:43 +0100)]
gitk: Ensure that "Reset branch" menu entry is enabled
Consider this sequence of events:
1. Detach HEAD and fire up gitk
2. Call the context menu on some commit. Notice that the last menu entry
says "Detached HEAD: can't reset" and it is disabled.
3. Now checkout some regular branch (e.g. 'master') using the context menu.
4. Call the context menu again on some commit.
Previously, at this point the last menu entry said "Reset master branch
to here", but it was still disabled. With this fix it is now enabled again.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Johannes Sixt [Tue, 2 Dec 2008 20:42:16 +0000 (21:42 +0100)]
gitk: Use check-buttons' -text property instead of separate labels
Previously the check-buttons' labels in the Preferences were separate
widgets. This had the disadvantage that in order to toggle the
check-button with the mouse the check-box had to be clicked. With
this change the check-box can also be toggled by clicking the label.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
The / key is often used to initiate searches (less, vim, some web
browsers). This changes the binding for the / (slash) key from 'find
next' to 'focus the search box' to follow this convention.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
doc/git-fsck: change the way for getting heads' SHA1s
The straightforward way with using 'cat .git/refs/heads/*' doesn't work
with packed refs as well as branches of the form topic/topic1. So let's
use git-for-each-ref for getting the heads' SHA1s in this example.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-show-branch: work around "single quote" typesetting glitch
The displayed example is typeset with acute accents around the string that
should be surrounded by a pair of single quotes in manpage. Replace them
with double quotes (the semantics of the example does not change).
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 19 Dec 2008 01:31:57 +0000 (17:31 -0800)]
Make sure lockfiles are unlocked when dying on SIGPIPE
We cleaned up lockfiles upon receiving the usual suspects HUP, TERM, QUIT
but a wicked user could kill us of asphyxiation by piping our output to a
pipe that does not read. Protect ourselves by catching SIGPIPE and clean
up the lockfiles as well in such a case.
René Scharfe [Sun, 21 Dec 2008 01:12:11 +0000 (02:12 +0100)]
connect.c: stricter port validation, silence compiler warning
In addition to checking if the provided port is numeric, also check
that the string isn't empty and that the port number is within the
valid range. Incidentally, this silences a compiler warning about
ignoring strtol's return value.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nanako Shiraishi [Sat, 20 Dec 2008 11:27:02 +0000 (20:27 +0900)]
Add a documentat on how to revert a faulty merge
Linus and Junio explained issues that are involved in reverting a merge
and how to continue working with a branch that was updated since such a
revert on the mailing list. This is to help new people who did not see
these messages.
Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
- call lock_remote() to issue a DAV_LOCK request to the server to lock
info/refs and branch refs being pushed into; handle_new_lock_ctx() is
used to parse its response to populate "struct remote_lock" that is
returned from lock_remote();
- send objects;
- call unlock_remote() to drop the lock.
The handle_new_lock_ctx() function assumed that the server will use a
lock token in opaquelocktoken URI scheme, which may have been an Ok
assumption under RFC 2518, but under RFC 4918 which obsoletes the older
standard it is not necessarily true.
This resulted in push failure (often resulted in "cannot lock existing
info/refs" error message) when talking to a server that does not use
opaquelocktoken URI scheme.
Signed-off-by: Kirill A. Korinskiy <catap@catap.ru> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marcel M. Cary [Mon, 15 Dec 2008 17:34:37 +0000 (09:34 -0800)]
git-sh-setup: Fix scripts whose PWD is a symlink into a git work-dir
I want directories of my working tree to be linked to from various
paths on my filesystem where third-party components expect them, both
in development and production environments. A build system's install
step could solve this, but I develop scripts and web pages that don't
need to be built. Git's submodule system could solve this, but we
tend to develop, branch, and test those directories all in unison, so
one big repository feels more natural. We prefer to edit and commit
on the symlinked paths, not the canonical ones, and in that setting,
"git pull" fails to find the top-level directory of the repository
while other commands work fine.
"git pull" fails because POSIX shells have a notion of current working
directory that is different from getcwd(). The shell stores this path
in PWD. As a result, "cd ../" can be interpreted differently in a
shell script than chdir("../") in a C program. The shell interprets
"../" by essentially stripping the last textual path component from
PWD, whereas C chdir() follows the ".." link in the current directory
on the filesystem. When PWD is a symlink, these are different
destinations. As a result, Git's C commands find the correct
top-level working tree, and shell scripts do not.
Changes:
* When interpreting a relative upward (../) path in cd_to_toplevel,
prepend the cwd without symlinks, given by /bin/pwd
* Add tests for cd_to_toplevel and "git pull" in a symlinked
directory that failed before this fix, plus contrasting scenarios
that already worked
Signed-off-by: Marcel M. Cary <marcel@oak.homeunix.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Mon, 15 Dec 2008 10:05:31 +0000 (11:05 +0100)]
rebase -i -p: Fix --continue after a merge could not be redone
When a merge that has a conflict was rebased, then rebase stopped to let
the user resolve the conflicts. However, thereafter --continue failed
because the author-script was not saved. (This is rebase -i's way to
preserve a commit's authorship.) This fixes it by doing taking the same
failure route after a merge that is also taken after a normal cherry-pick.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Mon, 15 Dec 2008 10:05:30 +0000 (11:05 +0100)]
Show a failure of rebase -p if the merge had a conflict
This extends t3409-rebase-preserve-merges by a case where the merge that
is rebased has a conflict. Therefore, the rebase stops and expects that
the user resolves the conflict. However, currently rebase --continue
fails because .git/rebase-merge/author-script is missing.
The test script had allocated two identical clones, but only one of them
(clone2) was used. Now we use both as indicated in the comment. Also,
two instances of && was missing in the setup part.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 19 Dec 2008 22:41:21 +0000 (14:41 -0800)]
fast-import: make tagger information optional
Even though newer Porcelain tools always record the tagger information
when creating new tags, export/import pair should be able to faithfully
reproduce ancient tag objects that lack tagger information.
Signed-off-by: Junio C Hamano <gitster@pobox.com> Acked-by: Shawn O. Pearce <spearce@spearce.org>
Miklos Vajna [Sat, 20 Dec 2008 00:52:17 +0000 (01:52 +0100)]
SubmittingPatches: mention the usage of real name in Signed-off-by: lines
Especially with something that is supposed to hopefully have some legal
value down the line if somebody starts making noises, it really would be
nice to have a real person to associate things with. Suggest this in the
SubmittingPatches document.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Like many git commands, git-mergetool allows "--" to signal
the end of option processing. This adds a missing "shift"
statement so that this is correctly handled.
Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Thu, 18 Dec 2008 17:11:18 +0000 (18:11 +0100)]
test overlapping ignore patterns
Add a test which checks that negated patterns such as "!foo.html" can
override previous patterns such as "*.html". This is documented
behaviour but had not been tested so far.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 18 Dec 2008 06:28:03 +0000 (22:28 -0800)]
Merge branch 'lt/readlink'
* lt/readlink:
combine-diff.c: use strbuf_readlink()
builtin-blame.c: use strbuf_readlink()
make_absolute_path(): check bounds when seeing an overlong symlink
Make 'prepare_temp_file()' ignore st_size for symlinks
Make 'diff_populate_filespec()' use the new 'strbuf_readlink()'
Make 'index_path()' use 'strbuf_readlink()'
Make 'ce_compare_link()' use the new 'strbuf_readlink()'
Add generic 'strbuf_readlink()' helper function
but the DESCRIPTION says that this form checks the paths out "from the
index, or from a named commit." A later sentence refers to the same
argument as "<tree-ish> argument", but it is not clear that these two
sentences are talking about the same command line argument for first-time
readers.
Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 18 Dec 2008 05:56:48 +0000 (21:56 -0800)]
Merge git://repo.or.cz/git-gui
* git://repo.or.cz/git-gui:
git-gui 0.12
git-gui: Get rid of the last remnants of GIT_CONFIG_LOCAL
git-gui: Update Hungarian translation for 0.12
git-gui: Fixed typos in Swedish translation.
git-gui: Updated Swedish translation (515t0f0u).
git gui: update Italian translation
git-gui: Update Japanese translation for 0.12
git-gui: Starting translation for Norwegian
git-gui: Update German (completed) translation.
git-gui: Update po template to include 'Mirroring %s' message
git-gui: Fix commit encoding handling.
git-gui: Fix handling of relative paths in blame.
Miklos Vajna [Wed, 17 Dec 2008 21:29:06 +0000 (22:29 +0100)]
githooks documentation: add a note about the +x mode
In a freshly initialized repo it is only necessary to rename the .sample
hooks, but when using older repos (initialized with older git init)
enabled the +x mode is still necessary - docuement this.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Linus Torvalds [Wed, 17 Dec 2008 17:36:40 +0000 (09:36 -0800)]
Add generic 'strbuf_readlink()' helper function
It was already what 'git apply' did in read_old_data(), just export it
as a real function, and make it be more generic.
In particular, this handles the case of the lstat() st_size data not
matching the readlink() return value properly (which apparently happens
at least on NTFS under Linux). But as a result of this you could also
use the new function without even knowing how big the link is going to
be, and it will allocate an appropriately sized buffer.
So we pass in the st_size of the link as just a hint, rather than a
fixed requirement.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-gui: Get rid of the last remnants of GIT_CONFIG_LOCAL
In dc871831(Only use GIT_CONFIG in "git config", not other programs),
GIT_CONFIG_LOCAL was rested in peace, in favor of not reading
/etc/gitconfig and $HOME/.gitconfig at all when GIT_CONFIG is set.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Since f98f8cb (Ship sample hooks with .sample suffix, 2008-06-24) hooks
are not enabled by making them executable anymore, but by removing the
'.sample' suffix from the filename.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 17 Dec 2008 03:42:02 +0000 (19:42 -0800)]
gitweb: do not run "git diff" that is Porcelain
Jakub says that legacy-style URI to view two blob differences are never
generated since 1.4.3. This codepath runs "git diff" Porcelain from the
gitweb, which is a no-no.
Junio C Hamano [Wed, 17 Dec 2008 03:42:02 +0000 (19:42 -0800)]
gitweb: do not run "git diff" that is Porcelain
Jakub says that legacy-style URI to view two blob differences are never
generated since 1.4.3. This codepath runs "git diff" Porcelain from the
gitweb, which is a no-no. It can trigger diff.external command that is
specified in the configuration file of the repository being viewed.
Junio C Hamano [Tue, 16 Dec 2008 07:06:13 +0000 (23:06 -0800)]
Merge branch 'maint'
* maint:
fast-import: close pack before unlinking it
pager: do not dup2 stderr if it is already redirected
git-show: do not segfault when showing a bad tag
This is sort of a companion patch to 4723ee9(Close files opened by
lock_file() before unlinking.): on Windows, you cannot delete what
is still open.
This makes test 9300-fast-import pass on Windows for me; quite a few
fast-imports leave temporary packs until the test "blank lines not
necessary after other commands" actually tests for the number of files
in .git/objects/pack/, which has a few temporary packs now.
I guess that 8b4eb6b(Do not perform cross-directory renames when
creating packs) was "responsible" for the breakage.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 15 Dec 2008 08:33:34 +0000 (00:33 -0800)]
pager: do not dup2 stderr if it is already redirected
An earlier commit 61b8050 (sending errors to stdout under $PAGER,
2008-02-16) avoided losing the error messages that are sent to the
standard error when $PAGER is in effect by dup2'ing fd 2 to the pager.
his way, showing a tag object that points to a bad object:
$ git show tag-foo
would give the error message to the pager. However, it was not quite
right if the user did:
$ git show 2>error.log tag-foo
i.e. use the pager but store the errors in a separate file.
Junio C Hamano [Mon, 15 Dec 2008 08:36:56 +0000 (00:36 -0800)]
git-show: do not segfault when showing a bad tag
When a tag points at a bad or nonexistent object, we should diagnose the
breakage and exit. An earlier commit 4f3dcc2 (Fix 'git show' on signed
tag of signed tag of commit, 2008-07-01) lost this check and made it
segfault instead; not good.
In dc871831(Only use GIT_CONFIG in "git config", not other programs),
GIT_CONFIG_LOCAL was rested in peace, in favor of not reading
/etc/gitconfig and $HOME/.gitconfig at all when GIT_CONFIG is set.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-fast-import possible memory corruption problem
Internal "allocate in bulk, we will never free this memory anyway"
allocator used in fast-import had a logic to round up the size of the
requested memory block in a wrong place (it computed if the available
space is enough to fit the request first, and then carved a chunk of
memory by size rounded up to the alignment, which could go beyond the
actually available space).
builtin-commit uses commit_tree() from builtin-commit-tree since 6bb6b03 (builtin-commit: use commit_tree(), 2008-09-10), where the
same message is used.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Linus Torvalds [Thu, 11 Dec 2008 03:44:37 +0000 (19:44 -0800)]
fsck: reduce stack footprint
The logic to mark all objects that are reachable from tips of refs were
implemented as a set of recursive functions. In a repository with a deep
enough history, this can easily eat up all the available stack space.
Restructure the code to require less stackspace by using an object array
to keep track of the objects that still need to be processed.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>