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

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

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

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

Add path-limiting to git-add--interactive

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

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

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

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

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

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

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

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

Refactor patch_update_cmd

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

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

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

Authenticate only once in git-send-email

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

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

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

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

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

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

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

Fix "quote" misconversion for rewrite diff output.

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

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

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

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

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

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

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

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

git-svn: info --url [path]

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

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

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

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

git-svn info: implement info command

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

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

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

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

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

git-svn: extract reusable code into utility functions

Extacted canonicalize_path() in the main package.

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

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

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

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

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

carbonated beverage noticed this test was occasionally failing.

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

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

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

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

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

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

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

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

send-pack: cluster ref status reporting

Instead of intermingling success and failure, we now print:

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

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

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

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

avoid "defined but not used" warning for fetch_objs_via_walker

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

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

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

git-gui 0.9.0

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

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

Merge branch 'maint'

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

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

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

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

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

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

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

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

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

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

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

Flush progress message buffer in display().

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

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

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

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

autoconf: Add tests for memmem, strtoumax and mkdtemp functions

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

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

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

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

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

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

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

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

gitweb: Style all tables using CSS

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

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

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

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

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

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

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

Bisect reset: do nothing when not bisecting.

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

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

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

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

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

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

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

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

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

config: clarify compression defaults

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

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

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

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

config: correct core.loosecompression documentation

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

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

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

gitview: import only one of gtksourceview and gtksourceview2

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

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

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

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

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

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

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

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

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

Merge branch 'maint'

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

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

Further clarify clean.requireForce changes

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

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

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

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

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

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

Make builtin-tag.c use parse_options.

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

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

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

Teach git clean to use setup_standard_excludes()

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

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

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

It was distracting to see this error message:

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

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

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

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

Make git-clean a builtin

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

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

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

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

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

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

2. When there are more parameters:

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

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

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

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

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

Move gitk to its own subdirectory

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

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

refactor fetch's ref matching to use refname_match()Steffen Prohaska Sun, 11 Nov 2007 14:01:48 +0000 (15:01 +0100)

refactor fetch's ref matching to use refname_match()

The old rules used by fetch were coded as a series of ifs. The old
rules are:
1) match full refname if it starts with "refs/" or matches "HEAD"
2) verify that full refname starts with "refs/"
3) match abbreviated name in "refs/" if it starts with "heads/",
"tags/", or "remotes/".
4) match abbreviated name in "refs/heads/"

This is replaced by the new rules
a) match full refname
b) match abbreviated name prefixed with "refs/"
c) match abbreviated name prefixed with "refs/heads/"

The details of the new rules are different from the old rules. We no
longer verify that the full refname starts with "refs/". The new rule
(a) matches any full string. The old rules (1) and (2) were stricter.
Now, the caller is responsible for using sensible full refnames. This
should be the case for the current code. The new rule (b) is less
strict than old rule (3). The new rule accepts abbreviated names that
start with a non-standard prefix below "refs/".

Despite this modifications the new rules should handle all cases as
expected. Two tests are added to verify that fetch does not resolve
short tags or HEAD in remotes.

We may even think about loosening the rules a bit more and unify them
with the rev-parse rules. This would be done by replacing
ref_ref_fetch_rules with ref_ref_parse_rules. Note, the two new test
would break.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: use same rules as git-rev-parse to resolve refspecsSteffen Prohaska Sun, 11 Nov 2007 14:01:47 +0000 (15:01 +0100)

push: use same rules as git-rev-parse to resolve refspecs

This commit changes the rules for resolving refspecs to match the
rules for resolving refs in rev-parse. git-rev-parse uses clear rules
to resolve a short ref to its full name, which are well documented.
The rules for resolving refspecs documented in git-send-pack were
less strict and harder to understand. This commit replaces them by
the rules of git-rev-parse.

The unified rules are easier to understand and better resolve ambiguous
cases. You can now push from a repository containing several branches
ending on the same short name.

Note, this may break existing setups. For example, "master" will no longer
resolve to "origin/master" even when there is no other "master" elsewhere.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add refname_match()Steffen Prohaska Sun, 11 Nov 2007 14:01:46 +0000 (15:01 +0100)

add refname_match()

We use at least two rulesets for matching abbreviated refnames with
full refnames (starting with 'refs/'). git-rev-parse and git-fetch
use slightly different rules.

This commit introduces a new function refname_match
(const char *abbrev_name, const char *full_name, const char **rules).

abbrev_name is expanded using the rules and matched against full_name.
If a match is found the function returns true. rules is a NULL-terminate
list of format patterns with "%.*s", for example:

const char *ref_rev_parse_rules[] = {
"%.*s",
"refs/%.*s",
"refs/tags/%.*s",
"refs/heads/%.*s",
"refs/remotes/%.*s",
"refs/remotes/%.*s/HEAD",
NULL
};

Asterisks are included in the format strings because this is the form
required in sha1_name.c. Sharing the list with the functions there is
a good idea to avoid duplicating the rules. Hopefully this
facilitates unified matching rules in the future.

This commit makes the rules used by rev-parse for resolving refs to
sha1s available for string comparison. Before this change, the rules
were buried in get_sha1*() and dwim_ref().

A follow-up commit will refactor the rules used by fetch.

refname_match() will be used for matching refspecs in git-send-pack.

Thanks to Daniel Barkalow <barkalow@iabervon.org> for pointing
out that ref_matches_abbrev in remote.c solves a similar problem
and care should be taken to avoid confusion.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: support pushing HEAD to real branch nameSteffen Prohaska Sun, 11 Nov 2007 14:35:07 +0000 (15:35 +0100)

push: support pushing HEAD to real branch name

This teaches "push <remote> HEAD" to resolve HEAD on the local
side to its real branch name, e.g. master, and then act as if
the real branch name was specified. So we have a shorthand for
pushing the current branch. Besides HEAD, no other symbolic ref
is resolved.

Thanks to Daniel Barkalow <barkalow@iabervon.org> for suggesting
this implementation, which is much simpler than the
implementation proposed before.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: Fix references to deprecated commandsJ. Bruce Fields Mon, 19 Nov 2007 01:50:57 +0000 (20:50 -0500)

Documentation: Fix references to deprecated commands

... by changing git-tar-tree reference to git-archive and removing
seemingly unrelevant footnote about git-ssh-{fetch,upload}.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we... Christian Couder Sun, 18 Nov 2007 15:34:03 +0000 (16:34 +0100)

Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we are bisecting.

Previously we tested if the "$GIT_DIR/refs/bisect" directory
existed, to check if we were bisecting.

Now with packed refs, it is simpler to check if the file
"$GIT_DIR/BISECT_NAMES" exists, as it is already created when
starting bisection and removed when reseting bisection.

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

Update draft release notes for 1.5.4Junio C Hamano Mon, 19 Nov 2007 00:24:14 +0000 (16:24 -0800)

Update draft release notes for 1.5.4

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

user-manual: mention "..." in "Generating diffs", etc.J. Bruce Fields Mon, 19 Nov 2007 00:18:27 +0000 (19:18 -0500)

user-manual: mention "..." in "Generating diffs", etc.

We should mention the use of the "..." syntax for git-diff here. The
note about the difference between diff and the combined output of
git-format-patch then no longer fits so well, so remove it. Add a
reference to the git-format-patch[1] manpage.

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

Merge branch 'lt/rev-list-gitlink'Junio C Hamano Mon, 19 Nov 2007 00:16:37 +0000 (16:16 -0800)

Merge branch 'lt/rev-list-gitlink'

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

Merge branch 'ds/checkout-upper'Junio C Hamano Mon, 19 Nov 2007 00:04:17 +0000 (16:04 -0800)

Merge branch 'ds/checkout-upper'

* ds/checkout-upper:
git-checkout: Test for relative path use.
git-checkout: Support relative paths containing "..".

Merge branch 'sh/p4'Junio C Hamano Mon, 19 Nov 2007 00:03:58 +0000 (16:03 -0800)

Merge branch 'sh/p4'

* sh/p4:
git-p4: Fix direct import from perforce after fetching changes through git from origin

Merge branch 'lt/rev-list-interactive'Junio C Hamano Mon, 19 Nov 2007 00:03:24 +0000 (16:03 -0800)

Merge branch 'lt/rev-list-interactive'

* lt/rev-list-interactive:
Fix parent rewriting in --early-output
revision walker: mini clean-up
Enhance --early-output format
Add "--early-output" log flag for interactive GUI use
Simplify topo-sort logic

Merge branch 'ph/diffopts'Junio C Hamano Sun, 18 Nov 2007 23:50:16 +0000 (15:50 -0800)

Merge branch 'ph/diffopts'

* ph/diffopts:
Reorder diff_opt_parse options more logically per topics.
Make the diff_options bitfields be an unsigned with explicit masks.
Use OPT_BIT in builtin-pack-refs
Use OPT_BIT in builtin-for-each-ref
Use OPT_SET_INT and OPT_BIT in builtin-branch
parse-options new features.

Draft release notes: fix clean.requireForce descriptionJunio C Hamano Sun, 18 Nov 2007 23:22:51 +0000 (15:22 -0800)

Draft release notes: fix clean.requireForce description

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

Merge branch 'maint' to synchronize with 1.5.3.6Junio C Hamano Sun, 18 Nov 2007 23:15:47 +0000 (15:15 -0800)

Merge branch 'maint' to synchronize with 1.5.3.6

* maint:
GIT 1.5.3.6
grep -An -Bm: fix invocation of external grep command

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

user-manual: Add section "Why bisecting merge commits... Steffen Prohaska Sat, 10 Nov 2007 13:49:54 +0000 (14:49 +0100)

user-manual: Add section "Why bisecting merge commits can be harder ..."

This commit adds a discussion of the challenge of bisecting
merge commits to the user manual. The original author is
Junio C Hamano <gitster@pobox.com>, who posted the text to
the mailing list <http://marc.info/?l=git&m=119403257315527&w=2>.
His email was adapted for the manual.

The discussion is added to "Rewriting history and maintainig
patch series". The text added requires good understanding of
merging and rebasing. Therefore it should not be placed too
early in the manual. Right after the section on "Problems with
rewriting history", the discussion of bisect gives another reason
for linearizing as much of the history as possible.

The text includes suggestions and fixes by
Ralf Wildenhues <Ralf.Wildenhues@gmx.de> and
Benoit Sigoure <tsuna@lrde.epita.fr>.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

GIT 1.5.3.6 v1.5.3.6Junio C Hamano Sun, 18 Nov 2007 22:00:38 +0000 (14:00 -0800)

GIT 1.5.3.6

Use compat mkdtemp() on Solaris boxesGuido Ostkamp Fri, 16 Nov 2007 18:59:58 +0000 (19:59 +0100)

Use compat mkdtemp() on Solaris boxes

Define NO_MKDTEMP for all variants of SunOS; Solaris 10 does not
have mkdtemp() and all the other versions our Makefile knows
about don't have it either.

NO_{SETENV,UNSETENV,C99_FORMAT,STRTOUMAX} definitions cannot be
unified across versions. Beginning with Solaris 10, the C-library
provides unsetenv(), setenv() and strtoumax(). Also 'z'/'t' formats
are supported. However, older versions of Solaris do not support
these.

Signed-off-by: Guido Ostkamp <git@ostkamp.fastmail.fm>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-pack: fix "everything up-to-date" messageJeff King Sun, 18 Nov 2007 08:08:22 +0000 (03:08 -0500)

send-pack: fix "everything up-to-date" message

This has always been slightly inaccurate, since it used the
new_refs counter, which really meant "did we send any
objects," so deletions were not counted.

It has gotten even worse with recent patches, since we no
longer look at the 'ret' value, meaning we would say "up to
date" if non-ff pushes were rejected.

Instead, we now claim up to date iff every ref is either
unmatched or up to date. Any other case should already have
generated a status line.

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

send-pack: tighten remote error reportingJeff King Sun, 18 Nov 2007 07:16:52 +0000 (02:16 -0500)

send-pack: tighten remote error reporting

Previously, we set all ref pushes to 'OK', and then marked
them as errors if the remote reported so. This has the
problem that if the remote dies or fails to report a ref, we
just assume it was OK.

Instead, we use a new non-OK state to indicate that we are
expecting status (if the remote doesn't support the
report-status feature, we fall back on the old behavior).
Thus we can flag refs for which we expected a status, but
got none (conversely, we now also print a warning for refs
for which we get a status, but weren't expecting one).

This also allows us to simplify the receive_status exit
code, since each ref is individually marked with failure
until we get a success response. We can just print the usual
status table, so the user still gets a sense of what we were
trying to do when the failure happened.

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

make "find_ref_by_name" a public functionJeff King Sun, 18 Nov 2007 07:13:10 +0000 (02:13 -0500)

make "find_ref_by_name" a public function

This was a static in remote.c, but is generally useful.

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

Fix warning about bitfield in struct refShawn O. Pearce Sun, 18 Nov 2007 09:31:37 +0000 (04:31 -0500)

Fix warning about bitfield in struct ref

cache.h:503: warning: type of bit-field 'force' is a GCC extension
cache.h:504: warning: type of bit-field 'merge' is a GCC extension
cache.h:505: warning: type of bit-field 'nonfastforward' is a GCC extension
cache.h:506: warning: type of bit-field 'deletion' is a GCC extension

So we change it to an 'unsigned int' which is not a GCC extension.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ph/parseopt-sh'Junio C Hamano Sun, 18 Nov 2007 05:39:37 +0000 (21:39 -0800)

Merge branch 'ph/parseopt-sh'

* ph/parseopt-sh:
git-quiltimport.sh fix --patches handling
git-am: -i does not take a string parameter.
sh-setup: don't let eval output to be shell-expanded.
git-sh-setup: fix parseopt `eval` string underquoting
Give git-am back the ability to add Signed-off-by lines.
git-rev-parse --parseopt
scripts: Add placeholders for OPTIONS_SPEC
Migrate git-repack.sh to use git-rev-parse --parseopt
Migrate git-quiltimport.sh to use git-rev-parse --parseopt
Migrate git-checkout.sh to use git-rev-parse --parseopt --keep-dashdash
Migrate git-instaweb.sh to use git-rev-parse --parseopt
Migrate git-merge.sh to use git-rev-parse --parseopt
Migrate git-am.sh to use git-rev-parse --parseopt
Migrate git-clone to use git-rev-parse --parseopt
Migrate git-clean.sh to use git-rev-parse --parseopt.
Update git-sh-setup(1) to allow transparent use of git-rev-parse --parseopt
Add a parseopt mode to git-rev-parse to bring parse-options to shell scripts.

grep -An -Bm: fix invocation of external grep commandJunio C Hamano Sun, 18 Nov 2007 05:18:14 +0000 (21:18 -0800)

grep -An -Bm: fix invocation of external grep command

When building command line to invoke external grep, the
arguments to -A/-B/-C options were placd in randarg[] buffer,
but the code forgot that snprintf() does not count terminating
NUL in its return value. This caused "git grep -A1 -B2" to
invoke external grep with "-B21 -A1".

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

fetch-pack: Prepare for a side-band demultiplexer in... Johannes Sixt Sat, 17 Nov 2007 22:09:28 +0000 (23:09 +0100)

fetch-pack: Prepare for a side-band demultiplexer in a thread.

get_pack() receives a pair of file descriptors that communicate with
upload-pack at the remote end. In order to support the case where the
side-band demultiplexer runs in a thread, and, hence, in the same process
as the main routine, we must not close the readable file descriptor early.

The handling of the readable fd is changed in the case where upload-pack
supports side-band communication: The old code closed the fd after it was
inherited to the side-band demultiplexer process. Now we do not close it.
The caller (do_fetch_pack) will close it later anyway. The demultiplexer
is the only reader, it does not matter that the fd remains open in the
main process as well as in unpack-objects/index-pack, which inherits it.

The writable fd is not needed in get_pack(), hence, the old code closed
the fd. For symmetry with the readable fd, we now do not close it; the
caller (do_fetch_pack) will close it later anyway. Therefore, the new
behavior is that the channel now remains open during the entire
conversation, but this has no ill effects because upload-pack does not read
from it once it has begun to send the pack data. For the same reason it
does not matter that the writable fd is now inherited to the demultiplexer
and unpack-objects/index-pack processes.

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

git-remote.txt: fix example urlJ. Bruce Fields Sat, 3 Nov 2007 02:54:31 +0000 (22:54 -0400)

git-remote.txt: fix example url

If I'm going to use a real example as a URL, I suppose I should get it
right....

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

Merge git://git.bogomips.org/git-svnJunio C Hamano Sun, 18 Nov 2007 00:40:03 +0000 (16:40 -0800)

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

* git://git.bogomips.org/git-svn:
git-svn: Fix a typo and add a comma in an error message in git-svn
git-svn log: handle unreachable revisions like "svn log"
git-svn log: include commit log for the smallest revision in a range
git-svn log: fix ascending revision ranges
git-svn's dcommit must use subversion's config
git-svn: add tests for command-line usage of init and clone commands

git-svn: Fix a typo and add a comma in an error message... David Reiss Tue, 13 Nov 2007 21:47:26 +0000 (13:47 -0800)

git-svn: Fix a typo and add a comma in an error message in git-svn

Signed-off-by: David Reiss <dreiss@facebook.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn log: handle unreachable revisions like "svn... David D Kilzer Mon, 12 Nov 2007 06:56:52 +0000 (22:56 -0800)

git-svn log: handle unreachable revisions like "svn log"

When unreachable revisions are given to "svn log", it displays all commit
logs in the given range that exist in the current tree. (If no commit
logs are found in the current tree, it simply prints a single commit log
separator.) This patch makes "git-svn log" behave the same way.

Ten tests added to t/t9116-git-svn-log.sh.

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

git-svn log: include commit log for the smallest revisi... David D Kilzer Sun, 11 Nov 2007 06:10:34 +0000 (22:10 -0800)

git-svn log: include commit log for the smallest revision in a range

The "svn log -rM:N" command shows commit logs inclusive in the range [M,N].
Previously "git-svn log" always excluded the commit log for the smallest
revision in a range, whether the range was ascending or descending. With
this patch, the smallest revision in a range is always shown.

Updated tests for ascending and descending revision ranges.

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

git-svn log: fix ascending revision rangesDavid D Kilzer Sun, 11 Nov 2007 06:10:33 +0000 (22:10 -0800)

git-svn log: fix ascending revision ranges

Fixed typo in Git::SVN::Log::git_svn_log_cmd(). Previously a command like
"git-svn log -r1:4" would only show a commit log separator.

Added tests for ascending and descending revision ranges.

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

git-svn's dcommit must use subversion's configKonstantin V. Arkhipov Wed, 14 Nov 2007 00:52:02 +0000 (03:52 +0300)

git-svn's dcommit must use subversion's config

When doing dcommit git-svn must use subversion's config or newly created
files will not include svn's properties
(defined in [auto-props] with 'enable-auto-props = yes').

Signed-off-by: Konstantin V. Arkhipov <voxus@onphp.org>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: add tests for command-line usage of init and... Eric Wong Sat, 17 Nov 2007 20:47:16 +0000 (12:47 -0800)

git-svn: add tests for command-line usage of init and clone commands

Some patches broke these commands in certain cases and were only
caught by manual testing.

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

send-pack: assign remote errors to each refJeff King Sat, 17 Nov 2007 12:56:03 +0000 (07:56 -0500)

send-pack: assign remote errors to each ref

This lets us show remote errors (e.g., a denied hook) along
with the usual push output.

There is a slightly clever optimization in receive_status
that bears explanation. We need to correlate the returned
status and our ref objects, which naively could be an O(m*n)
operation. However, since the current implementation of
receive-pack returns the errors to us in the same order that
we sent them, we optimistically look for the next ref to be
looked up to come after the last one we have found. So it
should be an O(m+n) merge if the receive-pack behavior
holds, but we fall back to a correct but slower behavior if
it should change.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-pack: check ref->status before updating tracking... Jeff King Sat, 17 Nov 2007 12:55:15 +0000 (07:55 -0500)

send-pack: check ref->status before updating tracking refs

Previously, we manually checked the 'NONE' and 'UPTODATE'
conditions. Now that we have ref->status, we can easily
say "only update if we pushed successfully".

This adds a test for and fixes a regression introduced in
ed31df31 where deleted refs did not have their tracking
branches removed. This was due to a bogus per-ref error test
that is superseded by the more accurate ref->status flag.

Signed-off-by: Jeff King <peff@peff.net>
Completely-Acked-By: Alex "Sleepy" Riesen <raa.lkml@gmail.com>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-pack: track errors for each refJeff King Sat, 17 Nov 2007 12:54:27 +0000 (07:54 -0500)

send-pack: track errors for each ref

Instead of keeping the 'ret' variable, we instead have a
status flag for each ref that tracks what happened to it.
We then print the ref status after all of the refs have
been examined.

This paves the way for three improvements:
- updating tracking refs only for non-error refs
- incorporating remote rejection into the printed status
- printing errors in a different order than we processed
(e.g., consolidating non-ff errors near the end with
a special message)

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Bisect visualize: use "for-each-ref" to list all good... Christian Couder Sat, 17 Nov 2007 13:35:25 +0000 (14:35 +0100)

Bisect visualize: use "for-each-ref" to list all good refs.

In bisect_visualize, "cd $GIT_DIR/refs && echo bisect/good-*" was
still used instead of "git for-each-ref". This patch fix it.

We now pass "refs/bisect/bad" and "--not refs/bisect/good-<rev>"
instead of "bisect/bad" and "--not bisect/good-<rev>" to gitk,
but it seems to work.

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

Update draft release notes for 1.5.4Junio C Hamano Sat, 17 Nov 2007 05:47:59 +0000 (21:47 -0800)

Update draft release notes for 1.5.4

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

Fix and improve t7004 (git-tag tests)Mike Hommey Fri, 16 Nov 2007 22:02:08 +0000 (23:02 +0100)

Fix and improve t7004 (git-tag tests)

Brown paper bag fix to avoid using non portable sed syntax. The
test by itself didn't catch what it was supposed to, anyways.

The new test first checks if git-tag correctly errors out when
the user exited the editor without editing the file. Then it
checks if what the user was presented in the editor was any
useful, which we define as the following:

* It begins with a single blank line, where the invoked editor
would typically place the editing curser at, so that the user
can immediately start typing;

* It has some instruction but that comes after that initial
blank line, all lines prefixed with "#". We specifically do
not check for the wording of this instruction.

* And it has nothing else, as the expected behaviour is "Hey
you did not leave any message".

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: fix git-clone manpage not to refer to... Sergei Organov Fri, 16 Nov 2007 18:43:16 +0000 (21:43 +0300)

Documentation: fix git-clone manpage not to refer to itself

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

user-manual.txt: minor clarification.Sergei Organov Fri, 16 Nov 2007 11:28:57 +0000 (14:28 +0300)

user-manual.txt: minor clarification.

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix rev-list when showing objects involving submodulesLinus Torvalds Sun, 11 Nov 2007 23:35:23 +0000 (23:35 +0000)

Fix rev-list when showing objects involving submodules

The function mark_tree_uninteresting() assumed that the tree entries
are blob when they are not trees. This is not so. Since we do
not traverse into submodules (yet), the gitlinks should be ignored.

In general, we should try to start moving away from using the
"S_ISLNK()" like things for internal git state. It was a mistake to
just assume the numbers all were same across all systems in the first
place. This implementation converts to the "object_type", and then
uses a case statement.

Noticed by Ilari on IRC.
Test script taken from an earlier version by Dscho.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sat, 17 Nov 2007 05:30:06 +0000 (21:30 -0800)

Merge branch 'maint'

* maint:
Update draft release notes for 1.5.3.6
Fix per-directory exclude handing for "git add"
core.excludesfile clean-up
Fix t9101 test failure caused by Subversion "auto-props"
git-send-email: add charset header if we add encoded 'From'

Update draft release notes for 1.5.3.6Junio C Hamano Sat, 17 Nov 2007 02:44:06 +0000 (18:44 -0800)

Update draft release notes for 1.5.3.6

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

Merge branch 'ds/maint-deflatebound' into maintJunio C Hamano Sat, 17 Nov 2007 05:14:17 +0000 (21:14 -0800)

Merge branch 'ds/maint-deflatebound' into maint

* ds/maint-deflatebound:
Improve accuracy of check for presence of deflateBound.

Fix per-directory exclude handing for "git add"Junio C Hamano Fri, 16 Nov 2007 09:15:41 +0000 (01:15 -0800)

Fix per-directory exclude handing for "git add"

In "dir_struct", each exclusion element in the exclusion stack records a
base string (pointer to the beginning with length) so that we can tell
where it came from, but this pointer is just pointing at the parameter
that is given by the caller to the push_exclude_per_directory()
function.

While read_directory_recursive() runs, calls to excluded() makes use
the data in the exclusion elements, including this base string. The
caller of read_directory_recursive() is not supposed to free the
buffer it gave to push_exclude_per_directory() earlier, until it
returns.

The test case Bruce Stephens gave in the mailing list discussion
was simplified and added to the t3700 test.

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

core.excludesfile clean-upJunio C Hamano Sat, 17 Nov 2007 01:05:02 +0000 (17:05 -0800)

core.excludesfile clean-up

There are inconsistencies in the way commands currently handle
the core.excludesfile configuration variable. The problem is
the variable is too new to be noticed by anything other than
git-add and git-status.

* git-ls-files does not notice any of the "ignore" files by
default, as it predates the standardized set of ignore files.
The calling scripts established the convention to use
.git/info/exclude, .gitignore, and later core.excludesfile.

* git-add and git-status know about it because they call
add_excludes_from_file() directly with their own notion of
which standard set of ignore files to use. This is just a
stupid duplication of code that need to be updated every time
the definition of the standard set of ignore files is
changed.

* git-read-tree takes --exclude-per-directory=<gitignore>,
not because the flexibility was needed. Again, this was
because the option predates the standardization of the ignore
files.

* git-merge-recursive uses hardcoded per-directory .gitignore
and nothing else. git-clean (scripted version) does not
honor core.* because its call to underlying ls-files does not
know about it. git-clean in C (parked in 'pu') doesn't either.

We probably could change git-ls-files to use the standard set
when no excludes are specified on the command line and ignore
processing was asked, or something like that, but that will be a
change in semantics and might break people's scripts in a subtle
way. I am somewhat reluctant to make such a change.

On the other hand, I think it makes perfect sense to fix
git-read-tree, git-merge-recursive and git-clean to follow the
same rule as other commands. I do not think of a valid use case
to give an exclude-per-directory that is nonstandard to
read-tree command, outside a "negative" test in the t1004 test
script.

This patch is the first step to untangle this mess.

The next step would be to teach read-tree, merge-recursive and
clean (in C) to use setup_standard_excludes().

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

Fix t9101 test failure caused by Subversion "auto-props"Wincent Colaiuta Fri, 16 Nov 2007 13:25:10 +0000 (14:25 +0100)

Fix t9101 test failure caused by Subversion "auto-props"

If a user has an "auto-prop" in his/her ~/.subversion/config file for
automatically setting the svn:keyword Id property on all ".c" files
(a reasonably common configuration in the Subversion world) then one
of the "svn propset" operations in the very first test would become a
no-op, which in turn would make the next commit a no-op.

This then caused the 25th test ('test propget') to fail because it
expects a certain number of commits to have taken place but the actual
number of commits was off by one.

Björn Steinbrink identified the "auto-prop" feature as the cause
of the failure. This patch avoids it by passing the "--no-auto-prop"
flag to "svn import" when setting up the test repository, thus ensuring
that the "svn propset" operation is no longer a no-op, regardless of the
users' settings in their config.

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

git-send-email: add charset header if we add encoded... Jeff King Fri, 16 Nov 2007 10:49:09 +0000 (05:49 -0500)

git-send-email: add charset header if we add encoded 'From'

We sometimes pick out the original rfc822 'From' header and
include it in the body of the message. If the original
author's name needs encoding, then we should specify that in
the content-type header.

If we already had a content-type header in the mail, then we
may need to re-encode. The logic is there to detect
this case, but it doesn't actually do the re-encoding.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-bisect: modernize branch shuffling hackJunio C Hamano Thu, 15 Nov 2007 08:47:53 +0000 (00:47 -0800)

git-bisect: modernize branch shuffling hack

When switching to a new rev, we first made "new-bisect" branch to
point at the chosen commit, attempt to switch to it, and then
finally renamed the new-bisect branch to bisect by hand when
successful. This is so that we can catch checkout failure (your
local modification may interfere with switching to the chosen
version) without losing information on which commit the next
attempt should be made.

Rewrite it using a more modern form but without breaking the
safety.

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

git-bisect: use update-ref to mark good/bad commitsJunio C Hamano Thu, 15 Nov 2007 08:42:04 +0000 (00:42 -0800)

git-bisect: use update-ref to mark good/bad commits

This removes the last instance of making a ref by hand with
"echo SHA1 >.git/refs/$refname" from the script and replaces it
with update-ref.

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

git-bisect: war on "sed"Junio C Hamano Thu, 15 Nov 2007 08:39:57 +0000 (00:39 -0800)

git-bisect: war on "sed"

We do not need to pipe "echo" to "sed" only to strip refs/heads/
from the beginning. We are assuming not-so-ancient shells these
days.

Also there is no need to avoid assuming \012 is the LF; we do
not run on EBCDIC, sorry. Other parts of the script already
uses tr to convert separator to LF that way.

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

Bisect reset: remove bisect refs that may have been... Christian Couder Thu, 15 Nov 2007 07:18:07 +0000 (08:18 +0100)

Bisect reset: remove bisect refs that may have been packed.

If refs were ever packed in the middle of bisection, the bisect
refs were not removed from the "packed-refs" file.

This patch fixes this problem by using "git update-ref -d $ref $hash"
in "bisect_clean_state".

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

git-p4: Fix direct import from perforce after fetching... Simon Hausmann Thu, 15 Nov 2007 09:38:45 +0000 (10:38 +0100)

git-p4: Fix direct import from perforce after fetching changes through git from origin

When using an existing git repository to cache the perforce import we don't
fetch the branch mapping from perforce as that is a slow operation. However
the origin repository may not be fully up-to-date and therefore it may be
necessary to import more changes directly from Perforce.

Such a direct import needs self.knownBranches to be set up though, so
initialize it from the existing p4/* git branches.

Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix per-directory exclude handing for "git add"Junio C Hamano Fri, 16 Nov 2007 09:15:41 +0000 (01:15 -0800)

Fix per-directory exclude handing for "git add"

In "dir_struct", each exclusion element in the exclusion stack records a
base string (pointer to the beginning with length) so that we can tell
where it came from, but this pointer is just pointing at the parameter
that is given by the caller to the push_exclude_per_directory()
function.

While read_directory_recursive() runs, calls to excluded() makes use
the data in the exclusion elements, including this base string. The
caller of read_directory_recursive() is not supposed to free the
buffer it gave to push_exclude_per_directory() earlier, until it
returns.

The test case Bruce Stephens gave in the mailing list discussion
was simplified and added to the t3700 test.

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

Documentation: customize diff-options depending on... Sergei Organov Thu, 15 Nov 2007 13:19:29 +0000 (16:19 +0300)

Documentation: customize diff-options depending on particular command

Customize diff-options depending on particular command as follows,
mostly to make git-diff and git-format-patch manuals less confusing:

* git-format-patch:

- Mark --patch-with-stat as being the default.

- Change -p description so that it matches what it actually does and
so that it doesn't refer to absent "section on generating
patches".

* git-diff: mark -p as being the default.

* git-diff-index/git-diff-files/git-diff-tree: mark --raw as being
the default.

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-ls-files: add --exclude-standardJeff King Thu, 15 Nov 2007 07:04:30 +0000 (02:04 -0500)

git-ls-files: add --exclude-standard

This provides a way for scripts to get at the new standard exclude
function.

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

Remove unreachable statementsGuido Ostkamp Thu, 15 Nov 2007 22:19:11 +0000 (23:19 +0100)

Remove unreachable statements

Solaris Workshop Compiler found a few unreachable statements.

Signed-off-by: Guido Ostkamp <git@ostkamp.fastmail.fm>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rehabilitate some t5302 tests on 32-bit off_t machinesNicolas Pitre Thu, 15 Nov 2007 17:24:17 +0000 (12:24 -0500)

rehabilitate some t5302 tests on 32-bit off_t machines

Commit 8ed2fca458d085f12c3c6808ef4ddab6aa40ef14 was a bit draconian in
skipping certain tests which should be perfectly valid even on platform
with a 32-bit off_t.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs.c: Remove unused get_ref_sha1()Johannes Sixt Thu, 15 Nov 2007 16:33:44 +0000 (17:33 +0100)

refs.c: Remove unused get_ref_sha1()

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

Allow ETC_GITCONFIG to be a relative path.Johannes Sixt Tue, 13 Nov 2007 20:05:06 +0000 (21:05 +0100)

Allow ETC_GITCONFIG to be a relative path.

If ETC_GITCONFIG is not an absolute path, interpret it relative to
--exec-dir. This makes the installed binaries relocatable because the
prefix is not compiled-in.

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