git.git
16 years agoAllow cherry-picking root commits
Johannes Schindelin [Fri, 4 Jul 2008 15:19:52 +0000 (16:19 +0100)]
Allow cherry-picking root commits

A root commit couldn't be cherry-picked.  But its semantics can be
defined as simply merging two trees by overlaying disjoint parts
and merging overlapping files without any common ancestor.  You
should be able to rebase originally independent branches on top of
another branch by using this.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'qq/maint'
Junio C Hamano [Sun, 6 Jul 2008 07:35:13 +0000 (00:35 -0700)]
Merge branch 'qq/maint'

* qq/maint:
  Fix "config_error_nonbool" used with value instead of key

16 years agohg-to-git: use git init instead of git init-db
Miklos Vajna [Sun, 6 Jul 2008 03:15:20 +0000 (05:15 +0200)]
hg-to-git: use git init instead of git init-db

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agohg-to-git: rewrite "git-frotz" to "git frotz"
Miklos Vajna [Sun, 6 Jul 2008 03:15:19 +0000 (05:15 +0200)]
hg-to-git: rewrite "git-frotz" to "git frotz"

This is not just nice but necessary since git-frotz is no longer in
PATH.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agohg-to-git: abort if the project directory is not a hg repo
Miklos Vajna [Sun, 6 Jul 2008 03:15:18 +0000 (05:15 +0200)]
hg-to-git: abort if the project directory is not a hg repo

Check the exit code of the first hg command, and abort to avoid a later
ValueError exception.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agohg-to-git: avoid raising a string exception
Miklos Vajna [Sun, 6 Jul 2008 03:15:17 +0000 (05:15 +0200)]
hg-to-git: avoid raising a string exception

This fixes the following warning:
hg-to-git.py:92: DeprecationWarning: raising a string exception is deprecated

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoINSTALL: Update section about git-frotz form.
Miklos Vajna [Sun, 6 Jul 2008 04:28:41 +0000 (06:28 +0200)]
INSTALL: Update section about git-frotz form.

The old text stated that 'git-frotz' can be always used instead of 'git
frotz' which is no longer true.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix "config_error_nonbool" used with value instead of key
Christian Couder [Sun, 6 Jul 2008 04:10:04 +0000 (06:10 +0200)]
Fix "config_error_nonbool" used with value instead of key

The function "config_error_nonbool", that is defined in "config.c",
is used to report an error when a config key in the config file
should have a corresponding value but it hasn't.

So the parameter to this function should be the key and not the
value, because the value is undefined. And it could crash if the
value is used.

This patches fixes two occurences where the value was passed
instead of the key.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix "config_error_nonbool" used with value instead of key
Christian Couder [Sun, 6 Jul 2008 04:10:04 +0000 (06:10 +0200)]
Fix "config_error_nonbool" used with value instead of key

The function "config_error_nonbool", that is defined in "config.c",
is used to report an error when a config key in the config file
should have a corresponding value but it hasn't.

So the parameter to this function should be the key and not the
value, because the value is undefined. And it could crash if the
value is used.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'qq/maint'
Junio C Hamano [Sun, 6 Jul 2008 01:33:16 +0000 (18:33 -0700)]
Merge branch 'qq/maint'

* qq/maint:
  clone -q: honor "quiet" option over native transports.
  attribute documentation: keep EXAMPLE at end
  builtin-commit.c: Use 'git_config_string' to get 'commit.template'
  http.c: Use 'git_config_string' to clean up SSL config.
  diff.c: Use 'git_config_string' to get 'diff.external'
  convert.c: Use 'git_config_string' to get 'smudge' and 'clean'
  builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix'
  Documentation cvs: Clarify when a bare repository is needed
  Documentation: be precise about which date --pretty uses

Conflicts:

Documentation/gitattributes.txt

16 years agoclone -q: honor "quiet" option over native transports.
Junio C Hamano [Sun, 6 Jul 2008 00:58:50 +0000 (17:58 -0700)]
clone -q: honor "quiet" option over native transports.

The earlier built-in conversion seems to have broken "git-clone"; this
teaches the command to honor the "-q" option again when talking to the
remote end over native transports (file://, git:// and ssh://).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoattribute documentation: keep EXAMPLE at end
Junio C Hamano [Sun, 6 Jul 2008 01:14:27 +0000 (18:14 -0700)]
attribute documentation: keep EXAMPLE at end

The document gives overall definition of states in DESCRIPTION, describes
various aspects of git operations that can be influenced in EFFECTS, and
finally gives examples in the EXAMPLE section.  Archive creation however
was somehow documented after the EXAMPLE section, not insode EFFECTS.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-commit.c: Use 'git_config_string' to get 'commit.template'
Brian Hetro [Sat, 5 Jul 2008 05:24:40 +0000 (01:24 -0400)]
builtin-commit.c: Use 'git_config_string' to get 'commit.template'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agohttp.c: Use 'git_config_string' to clean up SSL config.
Brian Hetro [Sat, 5 Jul 2008 05:24:44 +0000 (01:24 -0400)]
http.c: Use 'git_config_string' to clean up SSL config.

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff.c: Use 'git_config_string' to get 'diff.external'
Brian Hetro [Sat, 5 Jul 2008 05:24:43 +0000 (01:24 -0400)]
diff.c: Use 'git_config_string' to get 'diff.external'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoconvert.c: Use 'git_config_string' to get 'smudge' and 'clean'
Brian Hetro [Sat, 5 Jul 2008 05:24:42 +0000 (01:24 -0400)]
convert.c: Use 'git_config_string' to get 'smudge' and 'clean'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format...
Brian Hetro [Sat, 5 Jul 2008 05:24:41 +0000 (01:24 -0400)]
builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation cvs: Clarify when a bare repository is needed
Matthew Ogilvie [Sat, 5 Jul 2008 04:43:41 +0000 (22:43 -0600)]
Documentation cvs: Clarify when a bare repository is needed

New users sometimes import a project and then immediately
try to use the imported repository as a central shared repository.
This provides pointers about setting up a bare repository for that
in the parts of the documentation dealing with CVS migration.

Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMove read_revisions_from_stdin from builtin-rev-list.c to revision.c
Adam Brewster [Sat, 5 Jul 2008 21:26:39 +0000 (17:26 -0400)]
Move read_revisions_from_stdin from builtin-rev-list.c to revision.c

Reading rev-list parameters from the command line can be reused by
commands other than rev-list.  Move this function to more "library-ish"
place to promote code reuse.

Signed-off-by: Adam Brewster <asb@bu.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix some warnings (on cygwin) to allow -Werror
Ramsay Jones [Thu, 3 Jul 2008 15:52:09 +0000 (16:52 +0100)]
Fix some warnings (on cygwin) to allow -Werror

When printing valuds of type uint32_t, we should use PRIu32, and should
not assume that it is unsigned int.  On 32-bit platforms, it could be
defined as unsigned long. The same caution applies to ntohl().

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: be precise about which date --pretty uses
Nikolaus Schulz [Sat, 5 Jul 2008 00:00:13 +0000 (02:00 +0200)]
Documentation: be precise about which date --pretty uses

This makes it explicit that the --pretty formats 'medium' and 'email' use the
author date (and ignore the committer date).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: use teletype font for sample command lines
Jonathan Nieder [Thu, 3 Jul 2008 06:06:23 +0000 (01:06 -0500)]
manpages: use teletype font for sample command lines

I think that some of these uses of italics were meant to be
rendered in quotation marks, anyway.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: italicize git subcommand names (which were in teletype font)
Jonathan Nieder [Thu, 3 Jul 2008 05:59:09 +0000 (00:59 -0500)]
manpages: italicize git subcommand names (which were in teletype font)

Italicize those git subcommand names already in teletype we missed.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: italicize nongit command names (if they are in teletype font)
Jonathan Nieder [Thu, 3 Jul 2008 05:55:07 +0000 (00:55 -0500)]
manpages: italicize nongit command names (if they are in teletype font)

Some manual pages use teletype font to set command names. We
change them to use italics, instead.  This creates a visual
distinction between names of commands and command lines that
can be typed at the command line. It is also more consistent
with other man pages outside Git.

In this patch, the commands named are non-git commands like bash.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: italicize gitk's name (where it was in teletype font)
Jonathan Nieder [Thu, 3 Jul 2008 05:49:55 +0000 (00:49 -0500)]
manpages: italicize gitk's name (where it was in teletype font)

The name `gitk` is sometimes meant to be entered at the command
prompt, but most uses are just referring to the program with that
name (not the incantation to start it).

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: italicize git command names (which were in teletype font)
Jonathan Nieder [Thu, 3 Jul 2008 05:41:41 +0000 (00:41 -0500)]
manpages: italicize git command names (which were in teletype font)

The names of git commands are not meant to be entered at the
commandline; they are just names. So we render them in italics,
as is usual for command names in manpages.

Using

doit () {
  perl -e 'for (<>) { s/\`(git-[^\`.]*)\`/'\''\1'\''/g; print }'
}
for i in git*.txt config.txt diff*.txt blame*.txt fetch*.txt i18n.txt \
        merge*.txt pretty*.txt pull*.txt rev*.txt urls*.txt
do
  doit <"$i" >"$i+" && mv "$i+" "$i"
done
git diff

.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: italicize command names
Jonathan Nieder [Thu, 3 Jul 2008 05:37:18 +0000 (00:37 -0500)]
manpages: italicize command names

This includes nongit commands like RCS 'merge'.  This patch only
italicizes names of commands if they had no formatting before.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: italicize command names in synopses
Jonathan Nieder [Thu, 3 Jul 2008 05:36:04 +0000 (00:36 -0500)]
manpages: italicize command names in synopses

To tell command names from options in a glance.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitdiffcore(7): fix awkward wording
Jonathan Nieder [Thu, 3 Jul 2008 05:30:25 +0000 (00:30 -0500)]
gitdiffcore(7): fix awkward wording

The phrase "diff outputs" sounds awkward to my ear (I think
"output" is meant to be used as a substantive noun.)

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: more "git-" versus "git " changes
Jonathan Nieder [Thu, 3 Jul 2008 05:28:15 +0000 (00:28 -0500)]
Documentation: more "git-" versus "git " changes

With git-commands moving out of $(bindir), it is useful to make a
clearer distinction between the git subcommand 'git-whatever' and
the command you type, `git whatever <options>`.  So we use a dash
after "git" when referring to the former and not the latter.

I already sent a patch doing this same thing, but I missed some
spots.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: rewrap to prepare for "git-" vs "git " change
Jonathan Nieder [Thu, 3 Jul 2008 05:20:21 +0000 (00:20 -0500)]
Documentation: rewrap to prepare for "git-" vs "git " change

Rewrap lines in preparation for added dashes.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-commit(1): depersonalize description
Jonathan Nieder [Thu, 3 Jul 2008 05:13:45 +0000 (00:13 -0500)]
git-commit(1): depersonalize description

The intent is to make git-commit(1) feel more like a manual page.  The
change also makes the page four words shorter.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit(1): add comma
Jonathan Nieder [Thu, 3 Jul 2008 05:08:12 +0000 (00:08 -0500)]
git(1): add comma

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agomanpages: fix bogus whitespace
Jonathan Nieder [Thu, 3 Jul 2008 05:03:54 +0000 (00:03 -0500)]
manpages: fix bogus whitespace

It's distracting.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: fix gitlinks
Jonathan Nieder [Thu, 3 Jul 2008 04:54:38 +0000 (23:54 -0500)]
Documentation: fix gitlinks

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-format-patch(1): fix stray \ in output
Jonathan Nieder [Thu, 3 Jul 2008 04:47:05 +0000 (23:47 -0500)]
git-format-patch(1): fix stray \ in output

In listing blocks (set off by rows of dashes), the usual
formatting characters of asciidoc are instead rendered verbatim.
When the escaped double-hyphen of olden days is moved into such a
block along with other formatting improvements, it becomes
backslash-dash-dash.

So we remove the backslash.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoRetire 'stupid' merge strategy
Miklos Vajna [Sat, 5 Jul 2008 14:43:51 +0000 (16:43 +0200)]
Retire 'stupid' merge strategy

As pointed out by Linus, this strategy tries to take the best merge
base, but 'recursive' just does it better. If one needs something more
than 'resolve' then he/she should really use 'recursive' and not
'stupid'.

Cf. Message-ID: <alpine.LFD.1.10.0807030947360.18105@woody.linux-foundation.org>

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix apply --recount handling of no-EOL line
Thomas Rast [Fri, 4 Jul 2008 19:10:14 +0000 (21:10 +0200)]
Fix apply --recount handling of no-EOL line

If a patch modifies the last line of a file that previously had no
terminating '\n', it looks like

    -old text
    \ No newline at end of file
    +new text

Hence, a '\' line does not signal the end of the hunk.  This modifies
'git apply --recount' to take this into account.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Fri, 4 Jul 2008 08:59:57 +0000 (01:59 -0700)]
Merge branch 'maint'

* maint:
  GIT 1.5.6.2
  Fix executable bits in t/ scripts
  Work around gcc warnings from curl headers

16 years agoGIT 1.5.6.2 v1.5.6.2
Junio C Hamano [Fri, 4 Jul 2008 08:12:54 +0000 (01:12 -0700)]
GIT 1.5.6.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix executable bits in t/ scripts
Junio C Hamano [Fri, 4 Jul 2008 08:38:34 +0000 (01:38 -0700)]
Fix executable bits in t/ scripts

Pointed out by Ramsay Jones.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot4127-apply-same-fn: Avoid sed -i
Johannes Sixt [Fri, 4 Jul 2008 06:43:19 +0000 (08:43 +0200)]
t4127-apply-same-fn: Avoid sed -i

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoWork around gcc warnings from curl headers
Junio C Hamano [Fri, 4 Jul 2008 07:37:40 +0000 (00:37 -0700)]
Work around gcc warnings from curl headers

After master.k.org upgrade, I started seeing these warning messages:

    transport.c: In function 'get_refs_via_curl':
    transport.c:458: error: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option

It appears that the curl header wants to enforce the function signature
for callback function given to curl_easy_setopt() to be compatible with
that of (*curl_write_callback) or fwrite.  This patch seems to work the
issue around.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agofast-export --export-marks: fix off by one error
Junio C Hamano [Thu, 3 Jul 2008 07:25:23 +0000 (00:25 -0700)]
fast-export --export-marks: fix off by one error

The export_marks() function iterated over a (potentially sparsely
populated) hashtable, but it accessed it starting from offset 1 and one
element beyond the end.

Noticed by SungHyun Nam.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: Do not attempt to STARTTLS more than once
Thomas Rast [Wed, 2 Jul 2008 22:11:31 +0000 (00:11 +0200)]
git-send-email: Do not attempt to STARTTLS more than once

With the previous TLS patch, send-email would attempt to STARTTLS at
the beginning of every mail, despite reusing the last connection.  We
simply skip further encryption checks after successful TLS initiation.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'j6t/mingw'
Junio C Hamano [Thu, 3 Jul 2008 04:57:52 +0000 (21:57 -0700)]
Merge branch 'j6t/mingw'

* j6t/mingw: (38 commits)
  compat/pread.c: Add a forward declaration to fix a warning
  Windows: Fix ntohl() related warnings about printf formatting
  Windows: TMP and TEMP environment variables specify a temporary directory.
  Windows: Make 'git help -a' work.
  Windows: Work around an oddity when a pipe with no reader is written to.
  Windows: Make the pager work.
  When installing, be prepared that template_dir may be relative.
  Windows: Use a relative default template_dir and ETC_GITCONFIG
  Windows: Compute the fallback for exec_path from the program invocation.
  Turn builtin_exec_path into a function.
  Windows: Use a customized struct stat that also has the st_blocks member.
  Windows: Add a custom implementation for utime().
  Windows: Add a new lstat and fstat implementation based on Win32 API.
  Windows: Implement a custom spawnve().
  Windows: Implement wrappers for gethostbyname(), socket(), and connect().
  Windows: Work around incompatible sort and find.
  Windows: Implement asynchronous functions as threads.
  Windows: Disambiguate DOS style paths from SSH URLs.
  Windows: A rudimentary poll() emulation.
  Windows: Implement start_command().
  ...

16 years agoMerge branch 'maint'
Junio C Hamano [Thu, 3 Jul 2008 04:57:50 +0000 (21:57 -0700)]
Merge branch 'maint'

* maint:
  Fix describe --tags --long so it does not segfault

16 years agoMerge branch 'js/maint-clone-insteadof' into maint
Junio C Hamano [Thu, 3 Jul 2008 04:32:44 +0000 (21:32 -0700)]
Merge branch 'js/maint-clone-insteadof' into maint

* js/maint-clone-insteadof:
  clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig
  clone: respect url.insteadOf setting in global configs

16 years agoMerge branch 'jk/maint-fetch-ref-hier' into maint
Junio C Hamano [Thu, 3 Jul 2008 04:32:44 +0000 (21:32 -0700)]
Merge branch 'jk/maint-fetch-ref-hier' into maint

* jk/maint-fetch-ref-hier:
  fetch: give a hint to the user when local refs fail to update
  fetch: report local storage errors in status table

16 years agoMerge branch 'jc/maint-reset' into maint
Junio C Hamano [Thu, 3 Jul 2008 04:32:44 +0000 (21:32 -0700)]
Merge branch 'jc/maint-reset' into maint

* jc/maint-reset:
  Allow "git-reset path" when unambiguous

16 years agoFix describe --tags --long so it does not segfault
Shawn O. Pearce [Thu, 3 Jul 2008 02:32:45 +0000 (02:32 +0000)]
Fix describe --tags --long so it does not segfault

If we match a lightweight (non-annotated tag) as the name to
output and --long was requested we do not have a tag, nor do
we have a tagged object to display.  Instead we must use the
object we were passed as input for the long format display.

Reported-by: Mark Burton <markb@ordern.com>
Backtraced-by: Mikael Magnusson <mikachu@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit fetch-pack: do not complain about "no common commits" in an empty repo
Johannes Schindelin [Wed, 2 Jul 2008 17:06:56 +0000 (18:06 +0100)]
git fetch-pack: do not complain about "no common commits" in an empty repo

If the repo is empty, it is obvious that there are no common commits
when fetching from _anywhere_.

So there is no use in saying it in that case, and it can even be
annoying.  Therefore suppress the message unilaterally if the repository
is empty prior to the fetch.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: Point to gitcli(7) from git(1)
Brian Gernhardt [Wed, 2 Jul 2008 14:13:35 +0000 (10:13 -0400)]
Documentation: Point to gitcli(7) from git(1)

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes for 1.6.0
Junio C Hamano [Wed, 2 Jul 2008 00:21:12 +0000 (17:21 -0700)]
Update draft release notes for 1.6.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitcli: Document meaning of --cached and --index
Nanako Shiraishi [Tue, 1 Jul 2008 14:02:40 +0000 (23:02 +0900)]
gitcli: Document meaning of --cached and --index

We saw this explanation repeated on the mailing list a few times.  Even
though the description of individual options to particular commands are
explained in their manual pages, the reason behind choosing which is which
has not been clearly explained in any of the documentation.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation formatting and cleanup
Jonathan Nieder [Mon, 30 Jun 2008 18:56:34 +0000 (13:56 -0500)]
Documentation formatting and cleanup

Following what appears to be the predominant style, format
names of commands and commandlines both as `teletype text`.

While we're at it, add articles ("a" and "the") in some
places, italicize the name of the command in the manual page
synopsis line, and add a comma or two where it seems appropriate.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: be consistent about "git-" versus "git "
Jonathan Nieder [Mon, 30 Jun 2008 06:09:04 +0000 (01:09 -0500)]
Documentation: be consistent about "git-" versus "git "

Since the git-* commands are not installed in $(bindir), using
"git-command <parameters>" in examples in the documentation is
not a good idea. On the other hand, it is nice to be able to
refer to each command using one hyphenated word. (There is no
escaping it, anyway: man page names cannot have spaces in them.)

This patch retains the dash in naming an operation, command,
program, process, or action. Complete command lines that can
be entered at a shell (i.e., without options omitted) are
made to use the dashless form.

The changes consist only of replacing some spaces with hyphens
and vice versa. After a "s/ /-/g", the unpatched and patched
versions are identical.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: prepare to be consistent about "git-" versus "git "
Jonathan Nieder [Mon, 30 Jun 2008 22:17:07 +0000 (17:17 -0500)]
Documentation: prepare to be consistent about "git-" versus "git "

With the dashed forms of git commands not in $(bindir), we have
to change many instances of "git-command" to "git command". Also,
for consistency it is at times appropriate to make the opposite
change. In some cases, the change is not so simple as changing one
character.

This patch gets rid of some of those cases by rewrapping lines.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-daemon(1): don't assume git-daemon is in /usr/bin
Jonathan Nieder [Mon, 30 Jun 2008 22:15:57 +0000 (17:15 -0500)]
git-daemon(1): don't assume git-daemon is in /usr/bin

In the example inetd.conf lines in git-daemon(1), it was
assumed that `git-daemon` resides in the user's /usr/bin.
With this patch, we only assume `git` is in /usr/bin.

The stronger assumption fails in the default installation
nowadays.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: complicate example of "man git-command"
Jonathan Nieder [Mon, 30 Jun 2008 22:10:25 +0000 (17:10 -0500)]
Documentation: complicate example of "man git-command"

The manual page for the command invoked as "git clone" is named
git-clone(1), and similarly for the rest of the git commands.
Make sure our first example of this in tutorials makes it clear
that it is the first two words of a command line that make up the
command's name (that is: for example, the effect of "git svn
dcommit" is described in git-svn(1)).

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agowhitespace fix in Documentation/git-repack.txt
Jonathan Nieder [Mon, 30 Jun 2008 22:05:15 +0000 (17:05 -0500)]
whitespace fix in Documentation/git-repack.txt

Change leading spaces to tabs to match the rest of the file.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: fix links to tutorials and other new manual pages
Jonathan Nieder [Mon, 30 Jun 2008 22:01:21 +0000 (17:01 -0500)]
Documentation: fix links to tutorials and other new manual pages

With the conversion of HTML documentation to man pages

tutorial.html -> gittutorial (7)
tutorial-2.html -> gittutorial-2 (7)
cvs-migration.html -> gitcvs-migration (7)
diffcore.html -> gitdiffcore (7)
repository-layout.html -> gitrepository-layout (5)
hooks.html -> githooks (5)
glossary.html -> gitglossary (7)
core-tutorial.html -> gitcore-tutorial (7)

and the automatic update of references to these pages,
a little debris was left behind. We clear it away.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge maint in
Junio C Hamano [Wed, 2 Jul 2008 00:19:34 +0000 (17:19 -0700)]
Merge maint in

16 years agoStart draft release notes for 1.5.6.2
Junio C Hamano [Wed, 2 Jul 2008 00:09:21 +0000 (17:09 -0700)]
Start draft release notes for 1.5.6.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix 'git show' on signed tag of signed tag of commit
Thomas Rast [Tue, 1 Jul 2008 09:47:04 +0000 (11:47 +0200)]
Fix 'git show' on signed tag of signed tag of commit

The cmd_show loop resolves tags by showing them, then pointing the
object to the 'tagged' member.  However, this object is not fully
initialized; it only contains the SHA1.  (This resulted in a segfault
if there were two levels of tags.)  We apply parse_object to get a
full object.

Noticed by Kalle Olavi Niemitalo on IRC.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'ph/mergetool'
Junio C Hamano [Tue, 1 Jul 2008 23:22:42 +0000 (16:22 -0700)]
Merge branch 'ph/mergetool'

* ph/mergetool:
  Remove the use of '--' in merge program invocation

16 years agoMerge branch 'js/apply-recount'
Junio C Hamano [Tue, 1 Jul 2008 23:22:39 +0000 (16:22 -0700)]
Merge branch 'js/apply-recount'

* js/apply-recount:
  Allow git-apply to recount the lines in a hunk (AKA recountdiff)

16 years agoMerge branch 'jc/checkdiff'
Junio C Hamano [Tue, 1 Jul 2008 23:22:35 +0000 (16:22 -0700)]
Merge branch 'jc/checkdiff'

* jc/checkdiff:
  Fix t4017-diff-retval for white-space from wc
  Update sample pre-commit hook to use "diff --check"
  diff --check: detect leftover conflict markers
  Teach "diff --check" about new blank lines at end
  checkdiff: pass diff_options to the callback
  check_and_emit_line(): rename and refactor
  diff --check: explain why we do not care whether old side is binary

16 years agoMerge branch 'kb/send-email-fifo'
Junio C Hamano [Tue, 1 Jul 2008 23:22:29 +0000 (16:22 -0700)]
Merge branch 'kb/send-email-fifo'

* kb/send-email-fifo:
  git-send-email: Accept fifos as well as files

16 years agoMerge branch 'tr/send-email-ssl'
Junio C Hamano [Tue, 1 Jul 2008 23:22:25 +0000 (16:22 -0700)]
Merge branch 'tr/send-email-ssl'

* tr/send-email-ssl:
  git-send-email: prevent undefined variable warnings if no encryption is set
  git-send-email: add support for TLS via Net::SMTP::SSL

16 years agoMerge branch 'js/maint-clone-insteadof'
Junio C Hamano [Tue, 1 Jul 2008 23:22:22 +0000 (16:22 -0700)]
Merge branch 'js/maint-clone-insteadof'

* js/maint-clone-insteadof:
  clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig
  clone: respect url.insteadOf setting in global configs

16 years agoMerge branch 'jc/maint-reset'
Junio C Hamano [Tue, 1 Jul 2008 23:22:19 +0000 (16:22 -0700)]
Merge branch 'jc/maint-reset'

* jc/maint-reset:
  Allow "git-reset path" when unambiguous

16 years agoMerge branch 'jk/maint-fetch-ref-hier'
Junio C Hamano [Tue, 1 Jul 2008 23:22:14 +0000 (16:22 -0700)]
Merge branch 'jk/maint-fetch-ref-hier'

* jk/maint-fetch-ref-hier:
  fetch: give a hint to the user when local refs fail to update
  fetch: report local storage errors in status table

16 years agoMerge branch 'dz/apply-again'
Junio C Hamano [Tue, 1 Jul 2008 23:22:10 +0000 (16:22 -0700)]
Merge branch 'dz/apply-again'

* dz/apply-again:
  git-apply: handle a patch that touches the same path more than once better

16 years agoMerge branch 'np/pack-default'
Junio C Hamano [Tue, 1 Jul 2008 23:22:07 +0000 (16:22 -0700)]
Merge branch 'np/pack-default'

* np/pack-default:
  pack.indexversion config option now defaults to 2
  repack.usedeltabaseoffset config option now defaults to "true"

16 years agoMerge branch 'jc/dashless' (early part)
Junio C Hamano [Tue, 1 Jul 2008 22:21:52 +0000 (15:21 -0700)]
Merge branch 'jc/dashless' (early part)

* 'jc/dashless' (early part):
  Prepare execv_git_cmd() for removal of builtins from the filesystem
  git-shell: accept "git foo" form

16 years agoMerge branch 'nd/dashless'
Junio C Hamano [Tue, 1 Jul 2008 22:21:40 +0000 (15:21 -0700)]
Merge branch 'nd/dashless'

* nd/dashless:
  Keep some git-* programs in $(bindir)
  Move all dashed-form commands to libexecdir

16 years agoMerge branch 'maint'
Junio C Hamano [Mon, 30 Jun 2008 07:44:19 +0000 (00:44 -0700)]
Merge branch 'maint'

* maint:
  doc/rev-parse: clarify reflog vs --until for specifying revisions

16 years agoAdd test results directory to t/.gitignore
Brian Gernhardt [Sun, 29 Jun 2008 20:47:56 +0000 (16:47 -0400)]
Add test results directory to t/.gitignore

We don't need test results to be committed if we're fixing a test.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agofetch: give a hint to the user when local refs fail to update
Jeff King [Fri, 27 Jun 2008 04:01:41 +0000 (00:01 -0400)]
fetch: give a hint to the user when local refs fail to update

There are basically two categories of update failures for
local refs:

  1. problems outside of git, like disk full, bad
     permissions, etc.

  2. D/F conflicts on tracking branch ref names

In either case, there should already have been an error
message. In case '1', hopefully enough information has
already been given that the user can fix it. In the case of
'2', we can hint that the user can clean up their tracking
branch area by using 'git remote prune'.

Note that we don't actually know _which_ case we have, so
the user will receive the hint in case 1, as well. In this
case the suggestion won't do any good, but hopefully the
user is smart enough to figure out that it's just a hint.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodoc/rev-parse: clarify reflog vs --until for specifying revisions
Jeff King [Mon, 30 Jun 2008 03:27:45 +0000 (23:27 -0400)]
doc/rev-parse: clarify reflog vs --until for specifying revisions

The rev-parse manpage introduces the branch@{date} syntax,
and mentions the reflog specifically. However, new users may
not be familiar with the distinction between the reflog and
the commit date, so let's help them out with a "you may be
interested in --until" pointer.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes for 1.6.0
Junio C Hamano [Sun, 29 Jun 2008 20:34:26 +0000 (13:34 -0700)]
Update draft release notes for 1.6.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: don't assume git-sh-setup and git-parse-remote are in PATH
jrnieder@uchicago.edu [Sun, 29 Jun 2008 16:10:20 +0000 (11:10 -0500)]
Documentation: don't assume git-sh-setup and git-parse-remote are in PATH

When git-parse-remote and git-sh-setup are not installed in
$(bindir) anymore, the shell script library won't be found on
user's $PATH in general.

Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9700: skip when Test::More is not available
Junio C Hamano [Sun, 29 Jun 2008 20:21:42 +0000 (13:21 -0700)]
t9700: skip when Test::More is not available

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoclone: respect the settings in $HOME/.gitconfig and /etc/gitconfig
Johannes Schindelin [Fri, 27 Jun 2008 12:55:23 +0000 (13:55 +0100)]
clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig

After initializing the config in the newly-created repository, we
need to unset GIT_CONFIG so that the global configs are read again.

Noticed by Pieter de Bie.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix t4017-diff-retval for white-space from wc
Brian Gernhardt [Sun, 29 Jun 2008 20:49:06 +0000 (16:49 -0400)]
Fix t4017-diff-retval for white-space from wc

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Sun, 29 Jun 2008 04:08:35 +0000 (21:08 -0700)]
Merge branch 'maint'

* maint:
  git-svn: don't sanitize remote names in config
  git-svn: avoid filling up the disk with temp files.
  git cat-file: Fix memory leak in batch mode
  fix git config example syntax
  avoid off-by-one error in run_upload_archive

16 years agogit-svn: don't sanitize remote names in config
Eric Wong [Sun, 29 Jun 2008 03:40:32 +0000 (20:40 -0700)]
git-svn: don't sanitize remote names in config

The original sanitization code was just taken from the
remotes2config.sh shell script in contrib.

Credit to Avery Pennarun for noticing this mistake, and Junio
for clarifying the rules for config section names:

Junio C Hamano wrote in <7vfxr23s6m.fsf@gitster.siamese.dyndns.org>:

> In
>
>  [foo "bar"] baz = value
>
> foo and baz must be config.c::iskeychar() (and baz must be isalpha()), but
> "bar" can be almost anything.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoshow_stats(): fix stats width calculation
Olivier Marin [Fri, 27 Jun 2008 00:18:48 +0000 (02:18 +0200)]
show_stats(): fix stats width calculation

Before this patch, name_width becomes negative or null for width values
less than 15 and name_width values greater than 25 (default: 50). This
leads to output random data.

This patch checks for minimal width and name_width values.

Signed-off-by: Olivier Marin <dkr@freesurf.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: remove {show,whatchanged}.difftree config options
Olivier Marin [Fri, 27 Jun 2008 00:17:55 +0000 (02:17 +0200)]
Documentation: remove {show,whatchanged}.difftree config options

This removes, from the documentation and the bash completion script, the
two config options that were introduced by the git-whatchanged.sh script
and lost in the C rewrite. Today, we can use aliases as an alternative.

Signed-off-by: Olivier Marin <dkr@freesurf.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: avoid filling up the disk with temp files.
Avery Pennarun [Sat, 28 Jun 2008 23:33:56 +0000 (19:33 -0400)]
git-svn: avoid filling up the disk with temp files.

Commit ffe256f9bac8a40ff751a9341a5869d98f72c285 ("git-svn: Speed up fetch")
introduced changes that create a temporary file for each object fetched by
svn.  These files should be deleted automatically, but perl apparently
doesn't do this until the process exits (or perhaps when its garbage
collector runs).

This means that on a large fetch, especially with lots of branches, we
sometimes fill up /tmp completely, which prevents the next temp file from
being written completely.  This is aggravated by the fact that a new temp
file is created for each updated file, even if that update produces a file
identical to one already in git.  Thus, it can happen even if there's lots
of disk space to store the finished repository.

We weren't adequately checking for write errors, so this would result in an
invalid file getting committed, which caused git-svn to fail later with an
invalid checksum.

This patch adds a check to syswrite() so similar problems don't lead to
corruption in the future.  It also unlink()'s each temp file explicitly
when we're done with it, so the disk doesn't need to fill up.

Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
Tested-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit cat-file: Fix memory leak in batch mode
Björn Steinbrink [Sun, 29 Jun 2008 01:21:25 +0000 (03:21 +0200)]
git cat-file: Fix memory leak in batch mode

When run in batch mode, git cat-file never frees the memory for the blob
contents it is printing. This quickly adds up and causes git-svn to be
hardly usable for imports of large svn repos, because it uses cat-file in
batch mode and cat-file's memory usage easily reaches several hundred MB
without any good reason.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-send-email: prevent undefined variable warnings if no encryption is set
Thomas Rast [Thu, 26 Jun 2008 21:03:21 +0000 (23:03 +0200)]
git-send-email: prevent undefined variable warnings if no encryption is set

With the previous patch, not configuring any encryption (either on or
off) would leave $smtp_encryption undefined.  We simply set it to the
empty string in that case.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agofix git config example syntax
Joey Hess [Sat, 28 Jun 2008 20:02:47 +0000 (16:02 -0400)]
fix git config example syntax

git-config expects a space, not '=' between option and value.

Also, quote the value since it contains globs, which some shells will not
pass through unchanged, or will abort if the glob doesn't expand.

Signed-off-by: Joey Hess <joey@kitenet.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoavoid off-by-one error in run_upload_archive
Jochen Voss [Sat, 28 Jun 2008 16:04:24 +0000 (17:04 +0100)]
avoid off-by-one error in run_upload_archive

Make sure that buf has enough space to store the trailing \0 of
the command line argument, too.

Signed-off-by: Jochen Voss <voss@seehuhn.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoGIT-VERSION-GEN: do not fail if a 'HEAD' file exists in the working copy
Lea Wiemann [Sat, 28 Jun 2008 17:13:29 +0000 (19:13 +0200)]
GIT-VERSION-GEN: do not fail if a 'HEAD' file exists in the working copy

Signed-off-by: Lea Wiemann <LeWiemann@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAllow git-apply to recount the lines in a hunk (AKA recountdiff)
Johannes Schindelin [Fri, 27 Jun 2008 17:43:09 +0000 (18:43 +0100)]
Allow git-apply to recount the lines in a hunk (AKA recountdiff)

Sometimes, the easiest way to fix up a patch is to edit it directly, even
adding or deleting lines.  Now, many people are not as divine as certain
benevolent dictators as to update the hunk headers correctly at the first
try.

So teach the tool to do it for us.

[jc: with tests]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocommit-tree: lift completely arbitrary limit of 16 parents
Johannes Schindelin [Fri, 27 Jun 2008 12:24:47 +0000 (13:24 +0100)]
commit-tree: lift completely arbitrary limit of 16 parents

There is no really good reason to have a merge with more than 16
parents, but we have a history of giving our users rope.

Combined with the fact that there was no good reason for that
arbitrary limit in the first place, here is an all-too-easy to fix.

Kind of wished-for by Len Brown.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoshrink git-shell by avoiding redundant dependencies
Dmitry Potapov [Fri, 27 Jun 2008 20:46:42 +0000 (00:46 +0400)]
shrink git-shell by avoiding redundant dependencies

A lot of modules that have nothing to do with git-shell functionality
were linked in, bloating git-shell more than 8 times.

This patch cuts off redundant dependencies by:
1. providing stubs for three functions that make no sense for git-shell;
2. moving quote_path_fully from environment.c to quote.c to make the
   later self sufficient;
3. moving make_absolute_path into a new separate file.

The following numbers have been received with the default optimization
settings on master using GCC 4.1.2:

Before:
   text    data     bss     dec     hex filename
 143915    1348   93168  238431   3a35f git-shell

After:
   text    data     bss     dec     hex filename
  17670     788    8232   26690    6842 git-shell

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agohelp: check early if we have a command, if not try a documentation topic
Christian Couder [Sat, 28 Jun 2008 04:35:03 +0000 (06:35 +0200)]
help: check early if we have a command, if not try a documentation topic

Before this patch, something like "git help tutorial" did not work,
people had to use "git help gittutorial" which is not very intuitive.

This patch uses the "is_git_command" function to test early if the
argument passed to "git help" is a git command, and if this is not the
case then we prefix the argument with "git" instead of "git-".

This way, things like "git help tutorial" or "git help glossary" will
work fine.

The little downside of this patch is that the "is_git_command" is a
little bit slow.

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