Code

git.git
15 years agoGIT 1.6.1-rc4 v1.6.1-rc4
Junio C Hamano [Mon, 22 Dec 2008 03:20:21 +0000 (19:20 -0800)]
GIT 1.6.1-rc4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAlways show which directory is not a git repository
Richard Hartmann [Sun, 21 Dec 2008 23:17:32 +0000 (00:17 +0100)]
Always show which directory is not a git repository

Unify all

  fatal: Not a git repository

error messages so they include path information.

Signed-off-by: Richard Hartmann <richih@net.in.tum.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake help entries alphabetical
Richard Hartmann [Sun, 21 Dec 2008 22:28:25 +0000 (23:28 +0100)]
Make help entries alphabetical

Signed-off-by: Richard Hartmann <richih@net.in.tum.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Mon, 22 Dec 2008 02:35:54 +0000 (18:35 -0800)]
Merge branch 'maint'

* maint:
  doc/git-fsck: change the way for getting heads' SHA1s

15 years agogit-revert documentation: refer to new HOWTO on reverting faulty merges
Boyd Stephen Smith Jr [Mon, 22 Dec 2008 00:26:03 +0000 (18:26 -0600)]
git-revert documentation: refer to new HOWTO on reverting faulty merges

Signed-off-by: Boyd Stephen Smith Jr <bss@iguanasuicide.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-revert: record the parent against which a revert was made
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>
15 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
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

15 years agogitk: Force the focus to the main window on Windows
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>
15 years agogitk: Allow unbalanced quotes/braces in commit headers
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>
15 years agogitk: Update German translation
Christian Stimming [Sat, 6 Dec 2008 19:49:24 +0000 (20:49 +0100)]
gitk: Update German translation

Attached to avoid whitespace problems.

Regards,

Christian

From 282060ac531fee722142f9d39c4ff29570723cbb Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Sat, 6 Dec 2008 20:47:15 +0100
Subject: [PATCH 2/2] gitk: Update German translation

Merged with most recent "make update-po" result.

Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agogitk: Mark forgotten strings (header sentence parts in color chooser) for translation
Christian Stimming [Sat, 6 Dec 2008 19:48:30 +0000 (20:48 +0100)]
gitk: Mark forgotten strings (header sentence parts in color chooser) for translation

Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agogitk: Ensure that "Reset branch" menu entry is enabled
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>
15 years agogitk: Use check-buttons' -text property instead of separate labels
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>
15 years agogitk: Map / to focus the search box
Giuseppe Bilotta [Tue, 2 Dec 2008 01:19:22 +0000 (02:19 +0100)]
gitk: Map / to focus the search box

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>
15 years agodoc/git-fsck: change the way for getting heads' SHA1s
Markus Heidelberg [Sun, 21 Dec 2008 16:30:22 +0000 (17:30 +0100)]
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>
15 years agoDocumentation/git-show-branch: work around "single quote" typesetting glitch
Markus Heidelberg [Sun, 21 Dec 2008 10:00:31 +0000 (02:00 -0800)]
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>
15 years agosend-email: futureproof split_addrs() sub
Junio C Hamano [Sun, 21 Dec 2008 09:57:59 +0000 (01:57 -0800)]
send-email: futureproof split_addrs() sub

Matt Kraai points out that calling parse_line() assuming that the caller
ever passes only one argument is a bug waiting to happen, and he is
right.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake sure lockfiles are unlocked when dying on SIGPIPE
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.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofast-import.c: stricter strtoul check, silence compiler warning
René Scharfe [Sun, 21 Dec 2008 01:28:48 +0000 (02:28 +0100)]
fast-import.c: stricter strtoul check, silence compiler warning

Store the return value of strtoul() in order to avoid compiler
warnings on Ubuntu 8.10.

Also check errno after each call, which is the only way to notice
an overflow without making ULONG_MAX an illegal date.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoconnect.c: stricter port validation, silence compiler warning
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>
15 years agoAdd a documentat on how to revert a faulty merge
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>
15 years agoRemove the requirement opaquelocktoken uri scheme
Kirill A. Korinskiy [Sat, 20 Dec 2008 06:19:46 +0000 (09:19 +0300)]
Remove the requirement opaquelocktoken uri scheme

The program flow of pushing over http is:

 - 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>
15 years agogit-sh-setup: Fix scripts whose PWD is a symlink into a git work-dir
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>
15 years agoDocumentation: fix typos, grammar, asciidoc syntax
Markus Heidelberg [Fri, 19 Dec 2008 12:14:18 +0000 (13:14 +0100)]
Documentation: fix typos, grammar, asciidoc syntax

[jc: the original patch was against master but 99% of it
 applied to maint; this commit splits out the part that
 applies only to master.]

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint' to sync with GIT 1.6.0.6
Junio C Hamano [Sat, 20 Dec 2008 03:32:29 +0000 (19:32 -0800)]
Merge branch 'maint' to sync with GIT 1.6.0.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.6.0.6 v1.6.0.6
Junio C Hamano [Sat, 20 Dec 2008 03:27:06 +0000 (19:27 -0800)]
GIT 1.6.0.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofast-import: make tagger information optional
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>
15 years agofast-export: deal with tag objects that do not have a tagger
Johannes Schindelin [Sat, 20 Dec 2008 00:00:27 +0000 (01:00 +0100)]
fast-export: deal with tag objects that do not have a tagger

When no tagger was found (old Git produced tags like this),
no "tagger" line is printed (but this is incompatible with the current
git fast-import).

Alternatively, you can pass the option --fake-missing-tagger, forcing
fast-export to fake a tagger

Unspecified Tagger <no-tagger>

with a tag date of the beginning of (Unix) time in the case of a missing
tagger, so that fast-import is still able to import the result.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoSubmittingPatches: mention the usage of real name in Signed-off-by: lines
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>
15 years agogit-mergetool: properly handle "git mergetool -- filename"
David Aguilar [Sat, 20 Dec 2008 01:01:01 +0000 (17:01 -0800)]
git-mergetool: properly handle "git mergetool -- filename"

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>
15 years agogit-send-email: handle email address with quoted comma
Wu Fengguang [Fri, 19 Dec 2008 08:10:10 +0000 (16:10 +0800)]
git-send-email: handle email address with quoted comma

Correctly handle email addresses containing quoted commas, e.g.

    "Zhu, Yi" <yi.zhu@intel.com>, "Li, Shaohua" <shaohua.li@intel.com>

The commas inside the double quotes are not separators.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: fix typos, grammar, asciidoc syntax
Markus Heidelberg [Fri, 19 Dec 2008 12:14:18 +0000 (13:14 +0100)]
Documentation: fix typos, grammar, asciidoc syntax

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: sync example output with git output
Markus Heidelberg [Fri, 19 Dec 2008 12:14:52 +0000 (13:14 +0100)]
Documentation: sync example output with git output

Don't confuse the user with old git messages.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix type-mismatch compiler warning from diff_populate_filespec()
René Scharfe [Thu, 18 Dec 2008 16:56:51 +0000 (17:56 +0100)]
Fix type-mismatch compiler warning from diff_populate_filespec()

The type of the size member of filespec is ulong, while strbuf_detach expects
a size_t pointer.  This patch should fix the warning:

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest overlapping ignore patterns
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>
15 years agoMerge branch 'lt/readlink'
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

15 years agoEnable threaded delta search on Mac OS X/Darwin
Arjen Laarhoven [Wed, 17 Dec 2008 08:20:25 +0000 (09:20 +0100)]
Enable threaded delta search on Mac OS X/Darwin

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoClarify documentation of "git checkout <tree-ish> paths" syntax
Nanako Shiraishi [Thu, 18 Dec 2008 03:34:56 +0000 (12:34 +0900)]
Clarify documentation of "git checkout <tree-ish> paths" syntax

The SYNOPSIS section of the manual writes:

    git checkout [options] [<tree-ish>] [--] <paths>...

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>
15 years agoMerge git://repo.or.cz/git-gui
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.

15 years agogit-gui 0.12 gitgui-0.12.0
Shawn O. Pearce [Thu, 18 Dec 2008 04:15:17 +0000 (20:15 -0800)]
git-gui 0.12

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogithooks documentation: add a note about the +x mode
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>
15 years agocombine-diff.c: use strbuf_readlink()
Junio C Hamano [Wed, 17 Dec 2008 20:37:58 +0000 (12:37 -0800)]
combine-diff.c: use strbuf_readlink()

When showing combined diff using work tree contents, use strbuf_readlink()
to read symbolic links.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agobuiltin-blame.c: use strbuf_readlink()
Junio C Hamano [Wed, 17 Dec 2008 20:37:53 +0000 (12:37 -0800)]
builtin-blame.c: use strbuf_readlink()

When faking a commit out of the work tree contents, use strbuf_readlink()
to read the contents of symbolic links.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agomake_absolute_path(): check bounds when seeing an overlong symlink
Junio C Hamano [Wed, 17 Dec 2008 20:37:48 +0000 (12:37 -0800)]
make_absolute_path(): check bounds when seeing an overlong symlink

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMake 'prepare_temp_file()' ignore st_size for symlinks
Linus Torvalds [Wed, 17 Dec 2008 18:31:36 +0000 (10:31 -0800)]
Make 'prepare_temp_file()' ignore st_size for symlinks

The code was already set up to not really need it, so this just massages
it a bit to remove the use entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake 'diff_populate_filespec()' use the new 'strbuf_readlink()'
Linus Torvalds [Wed, 17 Dec 2008 18:26:13 +0000 (10:26 -0800)]
Make 'diff_populate_filespec()' use the new 'strbuf_readlink()'

This makes all tests pass on a system where 'lstat()' has been hacked to
return bogus data in st_size for symlinks.

Of course, the test coverage isn't complete, but it's a good baseline.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake 'index_path()' use 'strbuf_readlink()'
Linus Torvalds [Wed, 17 Dec 2008 17:51:53 +0000 (09:51 -0800)]
Make 'index_path()' use 'strbuf_readlink()'

This makes us able to properly index symlinks even on filesystems where
st_size doesn't match the true size of the link.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake 'ce_compare_link()' use the new 'strbuf_readlink()'
Linus Torvalds [Wed, 17 Dec 2008 17:47:27 +0000 (09:47 -0800)]
Make 'ce_compare_link()' use the new 'strbuf_readlink()'

This simplifies the code, and also makes ce_compare_link now able to
handle filesystems with odd 'st_size' return values for symlinks.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd generic 'strbuf_readlink()' helper function
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>
15 years agogit-gui: Get rid of the last remnants of GIT_CONFIG_LOCAL
Johannes Schindelin [Sun, 14 Dec 2008 22:12:49 +0000 (23:12 +0100)]
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>
15 years agodoc/git-reset: add reference to git-stash
Markus Heidelberg [Wed, 17 Dec 2008 02:59:36 +0000 (03:59 +0100)]
doc/git-reset: add reference to git-stash

The "Interrupted workflow" situation is a good example for using
git-stash.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: fix description for enabling hooks
Markus Heidelberg [Wed, 17 Dec 2008 02:59:23 +0000 (03:59 +0100)]
Documentation: fix description for enabling hooks

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>
15 years agogit-daemon documentation: use {tilde}
Miklos Vajna [Tue, 16 Dec 2008 15:48:12 +0000 (16:48 +0100)]
git-daemon documentation: use {tilde}

Use '{tilde}' instead of '~', becase the later does not appear in the
manpage version, just in the HTML one.

Noticed by gonzzor on IRC.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: do not run "git diff" that is Porcelain
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.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.5.6.6 v1.5.6.6
Junio C Hamano [Wed, 17 Dec 2008 06:13:36 +0000 (22:13 -0800)]
GIT 1.5.6.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.5.5.6 v1.5.5.6
Junio C Hamano [Wed, 17 Dec 2008 06:08:22 +0000 (22:08 -0800)]
GIT 1.5.5.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.5.4.7 v1.5.4.7
Junio C Hamano [Wed, 17 Dec 2008 06:03:29 +0000 (22:03 -0800)]
GIT 1.5.4.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: do not run "git diff" that is Porcelain
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.

This patch applies to v1.5.4 and later.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash completion: Sync config variables with their man pages
Lee Marlow [Mon, 15 Dec 2008 17:45:49 +0000 (10:45 -0700)]
bash completion: Sync config variables with their man pages

Add 'normal' to config color options.
Add 'mergeoptions' to branch config options.
Add 'proxy' and 'mirror' to remote config options.

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash completion: Sort config completion variables
Lee Marlow [Mon, 15 Dec 2008 17:45:48 +0000 (10:45 -0700)]
bash completion: Sort config completion variables

Sort the config variables to make sync-ing them with
Documents/config.txt easier in the future.

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
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

15 years agofast-import: close pack before unlinking it
Johannes Schindelin [Mon, 15 Dec 2008 21:11:40 +0000 (22:11 +0100)]
fast-import: close pack before unlinking it

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>
15 years agopager: do not dup2 stderr if it is already redirected
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.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-show: do not segfault when showing a bad tag
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.

This fixes it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGet rid of the last remnants of GIT_CONFIG_LOCAL v1.6.1-rc3
Johannes Schindelin [Sun, 14 Dec 2008 22:10:52 +0000 (23:10 +0100)]
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: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: Describe git-gui Tools menu configuration options.
Alexander Gavrilov [Sun, 14 Dec 2008 19:44:32 +0000 (22:44 +0300)]
Documentation: Describe git-gui Tools menu configuration options.

Now git gui has a customizable Tools menu, so this adds
information about variables that are used to configure it.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-fast-import possible memory corruption problem
YONETANI Tomokazu [Sun, 14 Dec 2008 02:08:22 +0000 (11:08 +0900)]
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).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobuiltin-commit: remove unused message variable
Markus Heidelberg [Sat, 13 Dec 2008 19:05:34 +0000 (20:05 +0100)]
builtin-commit: remove unused message variable

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>
15 years agoMerge branch 'maint'
Junio C Hamano [Sat, 13 Dec 2008 05:50:34 +0000 (21:50 -0800)]
Merge branch 'maint'

* maint:
  git-config.txt: fix a typo

15 years agogit-branch: display sha1 on branch deletion
Brandon Casey [Fri, 12 Dec 2008 23:20:07 +0000 (17:20 -0600)]
git-branch: display sha1 on branch deletion

Make it easier to recover from a mistaken branch deletion by displaying the
sha1 of the branch's tip commit.

Update t3200 test to match the change in output.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-config.txt: fix a typo
Jim Meyering [Fri, 12 Dec 2008 09:00:41 +0000 (10:00 +0100)]
git-config.txt: fix a typo

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Thu, 11 Dec 2008 08:36:31 +0000 (00:36 -0800)]
Merge branch 'maint'

* maint:
  fsck: reduce stack footprint
  make sure packs to be replaced are closed beforehand

15 years agofsck: reduce stack footprint
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>
15 years agorebase: improve error messages about dirty state
Jeff King [Wed, 10 Dec 2008 09:25:19 +0000 (04:25 -0500)]
rebase: improve error messages about dirty state

If you have unstaged changes in your working tree and try to
rebase, you will get the cryptic "foo: needs update"
message, but nothing else.  If you have staged changes, you
get "your index is not up-to-date".

Let's improve this situation in two ways:

 - for unstaged changes, let's also tell them we are
   canceling the rebase, and why (in addition to the "needs
   update" lines)

 - for the staged changes case, let's use language that is a
   little more clear to the user: their index contains
   uncommitted changes

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agomake sure packs to be replaced are closed beforehand
Nicolas Pitre [Tue, 9 Dec 2008 19:26:52 +0000 (14:26 -0500)]
make sure packs to be replaced are closed beforehand

Especially on Windows where an opened file cannot be replaced, make
sure pack-objects always close packs it is about to replace. Even on
non Windows systems, this could save potential bad results if ever
objects were to be read from the new pack file using offset from the old
index.

This should fix t5303 on Windows.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Tested-by: Johannes Sixt <j6t@kdbg.org> (MinGW)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix typo in comment in builtin-add.c
Alexander Potashev [Wed, 10 Dec 2008 22:27:44 +0000 (01:27 +0300)]
Fix typo in comment in builtin-add.c

Reported-by: Tim Daly <daly@axiom-developer.org>
Signed-off-by: Alexander Potashev <aspotashev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-gui: Update Hungarian translation for 0.12
Miklos Vajna [Wed, 10 Dec 2008 14:03:13 +0000 (15:03 +0100)]
git-gui: Update Hungarian translation for 0.12

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-gui: Fixed typos in Swedish translation.
Peter Krefting [Wed, 10 Dec 2008 08:51:27 +0000 (09:51 +0100)]
git-gui: Fixed typos in Swedish translation.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agoFix t4031
Junio C Hamano [Wed, 10 Dec 2008 19:39:07 +0000 (11:39 -0800)]
Fix t4031

When I tweaked the patch to use $SHELL_PATH instead of a hard-coded
"#!/bin/sh" to produce 3aa1f7c (diff: respect textconv in rewrite diffs,
2008-12-09), I screwed up.  This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 10 Dec 2008 06:41:27 +0000 (22:41 -0800)]
Merge branch 'maint'

* maint:
  work around Python warnings from AsciiDoc
  git-svn: Make following parents atomic

15 years agodiff: respect textconv in rewrite diffs
Jeff King [Tue, 9 Dec 2008 08:13:21 +0000 (03:13 -0500)]
diff: respect textconv in rewrite diffs

Currently we just skip rewrite diffs for binary files; this
patch makes an exception for files which will be textconv'd,
and actually performs the textconv before generating the
diff.

Conceptually, rewrite diffs should be in the exact same
format as the a non-rewrite diff, except that we refuse to
share any context. Thus it makes very little sense for "git
diff" to show a textconv'd diff, but for "git diff -B" to
show "Binary files differ".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff: fix handling of binary rewrite diffs
Jeff King [Tue, 9 Dec 2008 08:12:28 +0000 (03:12 -0500)]
diff: fix handling of binary rewrite diffs

The current emit_rewrite_diff code always writes a text patch without
checking whether the content is binary. This means that if you end up with
a rewrite diff for a binary file, you get lots of raw binary goo in your
patch.

Instead, if we have binary files, then let's just skip emit_rewrite_diff
altogether. We will already have shown the "dissimilarity index" line, so
it is really about the diff contents. If binary diffs are turned off, the
"Binary files a/file and b/file differ" message should be the same in
either case. If we do have binary patches turned on, there isn't much
point in making a less-efficient binary patch that does a total rewrite;
no human is going to read it, and since binary patches don't apply with
any fuzz anyway, the result of application should be the same.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix typos in documentation
Alexander Potashev [Tue, 9 Dec 2008 17:26:22 +0000 (20:26 +0300)]
Fix typos in documentation

Signed-off-by: Alexander Potashev <aspotashev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-p4: Fix regression in p4Where method.
Tor Arvid Lund [Tue, 9 Dec 2008 15:41:50 +0000 (16:41 +0100)]
git-p4: Fix regression in p4Where method.

Unfortunately, I introduced a bug in commit 7f705dc36 (git-p4: Fix bug in
p4Where method). This happens because sometimes the result from
"p4 where <somepath>" doesn't contain a "depotFile" key, but instead a
"data" key that needs further parsing. This commit should ensure that both
of these cases are checked.

Signed-off-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoImprove language in git-merge.txt and related docs
Ralf Wildenhues [Tue, 9 Dec 2008 06:23:51 +0000 (07:23 +0100)]
Improve language in git-merge.txt and related docs

Improve some minor language and format issues like hyphenation,
phrases, spacing, word order, comma, attributes.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agowork around Python warnings from AsciiDoc
Junio C Hamano [Mon, 8 Dec 2008 02:38:46 +0000 (18:38 -0800)]
work around Python warnings from AsciiDoc

It appears that a reference to an anchor defined as [[anchor-name]] from
another place using <<anchor-name>> syntax, when the anchor name contains
a string "-with-" in its name, triggers these warnings from Python
interpreter.

  asciidoc -b docbook -d book user-manual.txt
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  <string>:1: Warning: 'with' will become a reserved keyword in Python 2.6

There currently is no reference to "Finding comments with given content",
but for consistency and for futureproofing, the anchor is also updated as
the other ones that are actually used and trigger these warnings.

Signed-off-by: Junio C Hamano <junio@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-gui: Updated Swedish translation (515t0f0u).
Peter Krefting [Tue, 9 Dec 2008 15:26:46 +0000 (16:26 +0100)]
git-gui: Updated Swedish translation (515t0f0u).

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit gui: update Italian translation
Michele Ballabio [Thu, 4 Dec 2008 17:28:21 +0000 (18:28 +0100)]
git gui: update Italian translation

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-gui: Update Japanese translation for 0.12
Nanako Shiraishi [Tue, 9 Dec 2008 03:42:17 +0000 (12:42 +0900)]
git-gui: Update Japanese translation for 0.12

Adds translation for one new message string.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agoDefine linkgit macro in [macros] section
Alexey Borzenkov [Mon, 8 Dec 2008 18:29:09 +0000 (21:29 +0300)]
Define linkgit macro in [macros] section

Starting with asciidoc 8.3.0 linkgit macro is no longer recognized by
asciidoc and user guide suggests
(http://www.methods.co.nz/asciidoc/userguide.html#_macro_definitions)
that macros are supposed to be defined in [macros] section. I'm not
sure whether undefined linkgit macro was working by pure chance or it
is a regression in asciidoc 8.3.0, but this patch adds proper
definition for the linkgit macro, allowing it to work on 8.3.0.

Signed-off-by: Alexey Borzenkov <snaury@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-svn: Make following parents atomic
Deskin Miller [Mon, 8 Dec 2008 13:31:31 +0000 (08:31 -0500)]
git-svn: Make following parents atomic

find_parent_branch generates branch@rev type branches when one has to
look back through SVN history to properly get the history for a branch
copied from somewhere not already being tracked by git-svn.  If in the
process of fetching this history, git-svn is interrupted, then when one
fetches again, it will use whatever was last fetched as the parent
commit and fail to fetch any more history which it didn't get to before
being terminated.  This is especially troubling in that different
git-svn copies of the same SVN repository can end up with different
commit sha1s, incorrectly showing the history as divergent and
precluding easy collaboration using git push and fetch.

To fix this, when we initialise the Git::SVN object $gs to search for
and perhaps fetch history, we check if there are any commits in SVN in
the range between the current revision $gs is at, and the top revision
for which we were asked to fill history.  If there are commits we're
missing in that range, we continue the fetch from the current revision
to the top, properly getting all history before using it as the parent
for the branch we're trying to create.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-gui: Starting translation for Norwegian
Fredrik Skolmli [Mon, 8 Dec 2008 16:36:57 +0000 (17:36 +0100)]
git-gui: Starting translation for Norwegian

This file have been used locally for some time, and is near
completion. Will put an effort into completing it later on,
or just leave it as an excercise for other Norwegians.

Signed-off-by: Fredrik Skolmli <fredrik@frsk.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogitweb: Fix bug in insert_file() subroutine
Jakub Narebski [Mon, 8 Dec 2008 13:13:21 +0000 (14:13 +0100)]
gitweb: Fix bug in insert_file() subroutine

In insert_file() subroutine (which is used to insert HTML fragments as
custom header, footer, hometext (for projects list view), and per
project README.html (for summary view)) we used:

     map(to_utf8, <$fd>);

This doesn't work, and other form has to be used:

     map { to_utf8($_) } <$fd>;

Now with test for t9600 added, for $GIT_DIR/README.html.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-gui: Update German (completed) translation.
Christian Stimming [Sat, 6 Dec 2008 20:22:16 +0000 (21:22 +0100)]
git-gui: Update German (completed) translation.

Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-gui: Update po template to include 'Mirroring %s' message
Shawn O. Pearce [Mon, 8 Dec 2008 16:32:28 +0000 (08:32 -0800)]
git-gui: Update po template to include 'Mirroring %s' message

A late addition to the message library.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-gui: Fix commit encoding handling.
Alexander Gavrilov [Sat, 6 Dec 2008 17:24:35 +0000 (20:24 +0300)]
git-gui: Fix commit encoding handling.

Commits without an encoding header are supposed to
be encoded in utf8. While this apparently hasn't always
been the case, currently it is the active convention, so
it is better to follow it; otherwise people who have to
use commitEncoding on their machines are unable to read
utf-8 commits made by others.

I also think that it is preferrable to display the warning
about an unsupported value of commitEncoding more prominently,
because this condition may lead to surprising behavior and,
eventually, to loss of data.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-gui: Fix handling of relative paths in blame.
Alexander Gavrilov [Sat, 6 Dec 2008 17:21:54 +0000 (20:21 +0300)]
git-gui: Fix handling of relative paths in blame.

Currently using '..' or '.' in the file path for gui blame
causes it to break, because the path is passed inside the
SHA:PATH spec to cat-file, which apparently does not understand
such items. As a result, cat-file returns nothing, and the
viewer crashes because of an "index out of range" error.

This commit adds a simple function that normalizes such paths.
I choose not to use [file normalize], because it uses some data
from the file system, e.g. dereferences symlinks, and creates
an absolute path, while blame may be used to inspect historical
information that bears no relation to the current filesystem state.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agodiff: allow turning on textconv explicitly for plumbing
Jeff King [Mon, 8 Dec 2008 02:57:01 +0000 (21:57 -0500)]
diff: allow turning on textconv explicitly for plumbing

Some history viewers use the diff plumbing to generate diffs
rather than going through the "git diff" porcelain.
Currently, there is no way for them to specify that they
would like to see the text-converted version of the diff.

This patch adds a "--textconv" option to allow such a
plumbing user to allow text conversion.  The user can then
tell the viewer whether or not they would like text
conversion enabled.

While it may be tempting add a configuration option rather
than requiring each plumbing user to be configured to pass
--textconv, that is somewhat dangerous. Text-converted diffs
generally cannot be applied directly, so each plumbing user
should "opt in" to generating such a diff, either by
explicit request of the user or by confirming that their
output will not be fed to patch.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoreorder ALLOW_TEXTCONV option setting
Jeff King [Mon, 8 Dec 2008 02:54:17 +0000 (21:54 -0500)]
reorder ALLOW_TEXTCONV option setting

Right now for the diff porcelain and the log family, we
call:

  init_revisions();
  setup_revisions();
  DIFF_OPT_SET(ALLOW_TEXTCONV);

However, that means textconv will _always_ be on, instead of
being a default that can be manipulated with
setup_revisions. Instead, we want:

  init_revisions();
  DIFF_OPT_SET(ALLOW_TEXTCONV);
  setup_revisions();

which is what this patch does.

We'll go ahead and move the callsite in wt-status, also;
even though the user can't pass any options here, it is a
cleanup that will help avoid any surprise later if the
setup_revisions line is changed.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoread-cache.c: typofix in comment
Junio C Hamano [Sat, 6 Dec 2008 01:54:11 +0000 (17:54 -0800)]
read-cache.c: typofix in comment

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