gitweb.git
Merge branch 'maint'Shawn O. Pearce Mon, 11 Jun 2007 23:06:15 +0000 (19:06 -0400)

Merge branch 'maint'

* maint:
git-gui: Include 'war on whitespace' fixes from git.git

git-gui: Include 'war on whitespace' fixes from git.gitShawn O. Pearce Mon, 11 Jun 2007 23:06:10 +0000 (19:06 -0400)

git-gui: Include 'war on whitespace' fixes from git.git

Earlier git.git applied a large "war on whitespace" patch that was
created using 'apply --whitespace=strip'. Unfortunately a few of
git-gui's own files got caught in the mix and were also cleaned up.
That was a6080a0a44d5ead84db3dabbbc80e82df838533d.

This patch is needed in git-gui.git to reapply those exact same
changes here, otherwise our version generator script is unable to
obtain our version number from git-describe when we are hosted in
the git.git repository.

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

git-p4 submit: Fix missing quotes around p4 commands... Simon Hausmann Mon, 11 Jun 2007 21:40:25 +0000 (23:40 +0200)

git-p4 submit: Fix missing quotes around p4 commands to make them work with spaces in filenames

Noticed by Alex Riesen

Signed-off-by: Simon Hausmann <simon@lst.de>

Mention remotes/p4/master also in the documentation.Simon Hausmann Mon, 11 Jun 2007 21:30:23 +0000 (23:30 +0200)

Mention remotes/p4/master also in the documentation.

Signed-off-by: Simon Hausmann <simon@lst.de>

Provide some information for single branch imports... Simon Hausmann Mon, 11 Jun 2007 21:28:03 +0000 (23:28 +0200)

Provide some information for single branch imports where the commits go

Signed-off-by: Simon Hausmann <simon@lst.de>

git-p4: check for existence of repo dir before trying... Kevin Green Mon, 11 Jun 2007 20:48:07 +0000 (16:48 -0400)

git-p4: check for existence of repo dir before trying to create

When using git-p4 in this manner:

git-p4 clone //depot/path/project myproject

If "myproject" already exists as a dir, but not a valid git repo, it fails
to create the directory.

Signed-off-by: Kevin Green <Kevin.Green@morganstanley.com>

Write out the options tag in the log message of imports... Simon Hausmann Mon, 11 Jun 2007 08:01:58 +0000 (10:01 +0200)

Write out the options tag in the log message of imports only if we actually have
options

Signed-off-by: Simon Hausmann <simon@lst.de>

Fix support for explicit disabling of syncing with... Simon Hausmann Mon, 11 Jun 2007 07:59:27 +0000 (09:59 +0200)

Fix support for explicit disabling of syncing with the origin

Signed-off-by: Simon Hausmann <simon@lst.de>

Merge branch 'master' of git://repo.or.cz/git-guiJunio C Hamano Mon, 11 Jun 2007 07:52:43 +0000 (00:52 -0700)

Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
git-gui: Internalize symbolic-ref HEAD reading logic
git-gui: Expose the merge.diffstat configuration option
git-gui: Allow users to delete remote branches
git-gui: Allow users to rename branches through 'branch -m'
git-gui: Disable tearoff menus on Windows, Mac OS X
git-gui: Provide fatal error if library is unavailable
git-gui: Enable verbose Tcl loading earlier
git-gui: Show the git-gui library path in 'About git-gui'
git-gui: GUI support for running 'git remote prune <name>'
git gui 0.8.0

Merge branch 'maint'Junio C Hamano Mon, 11 Jun 2007 07:52:37 +0000 (00:52 -0700)

Merge branch 'maint'

* maint: (46 commits)
git-gui: Changed blame header bar background to match main window
git-gui: Favor the original annotations over the recent ones
git-gui: Improve our labeling of blame annotation types
git-gui: Use three colors for the blame viewer background
git-gui: Jump to original line in blame viewer
git-gui: Display both commits in our tooltips
git-gui: Run blame twice on the same file and display both outputs
git-gui: Display the "Loading annotation..." message in italic
git-gui: Rename fields in blame viewer to better descriptions
git-gui: Label the uncommitted blame history entry
git-gui: Switch internal blame structure to Tcl lists
git-gui: Cleanup redundant column management in blame viewer
git-gui: Better document our blame variables
git-gui: Remove unused commit_list from blame viewer
git-gui: Automatically expand the line number column as needed
git-gui: Make the line number column slightly wider in blame
git-gui: Use lighter colors in blame view
git-gui: Remove unnecessary space between columns in blame viewer
git-gui: Remove the loaded column from the blame viewer
git-gui: Clip the commit summaries in the blame history menu
...

Merge branch 'maint' of git://repo.or.cz/git-gui into... Junio C Hamano Mon, 11 Jun 2007 07:51:39 +0000 (00:51 -0700)

Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui: (46 commits)
git-gui: Changed blame header bar background to match main window
git-gui: Favor the original annotations over the recent ones
git-gui: Improve our labeling of blame annotation types
git-gui: Use three colors for the blame viewer background
git-gui: Jump to original line in blame viewer
git-gui: Display both commits in our tooltips
git-gui: Run blame twice on the same file and display both outputs
git-gui: Display the "Loading annotation..." message in italic
git-gui: Rename fields in blame viewer to better descriptions
git-gui: Label the uncommitted blame history entry
git-gui: Switch internal blame structure to Tcl lists
git-gui: Cleanup redundant column management in blame viewer
git-gui: Better document our blame variables
git-gui: Remove unused commit_list from blame viewer
git-gui: Automatically expand the line number column as needed
git-gui: Make the line number column slightly wider in blame
git-gui: Use lighter colors in blame view
git-gui: Remove unnecessary space between columns in blame viewer
git-gui: Remove the loaded column from the blame viewer
git-gui: Clip the commit summaries in the blame history menu
...

Fix depot-paths encoding for multi-path imports (don... Simon Hausmann Mon, 11 Jun 2007 06:54:45 +0000 (08:54 +0200)

Fix depot-paths encoding for multi-path imports (don't split up //depot/path/foo)

Signed-off-by: Simon Hausmann <simon@lst.de>

Fix project name guessingSimon Hausmann Mon, 11 Jun 2007 06:50:57 +0000 (08:50 +0200)

Fix project name guessing

Signed-off-by: Simon Hausmann <simon@lst.de>

Merge branch 'maint'Shawn O. Pearce Mon, 11 Jun 2007 06:14:21 +0000 (02:14 -0400)

Merge branch 'maint'

* maint: (38 commits)
git-gui: Changed blame header bar background to match main window
git-gui: Favor the original annotations over the recent ones
git-gui: Improve our labeling of blame annotation types
git-gui: Use three colors for the blame viewer background
git-gui: Jump to original line in blame viewer
git-gui: Display both commits in our tooltips
git-gui: Run blame twice on the same file and display both outputs
git-gui: Display the "Loading annotation..." message in italic
git-gui: Rename fields in blame viewer to better descriptions
git-gui: Label the uncommitted blame history entry
git-gui: Switch internal blame structure to Tcl lists
git-gui: Cleanup redundant column management in blame viewer
git-gui: Better document our blame variables
git-gui: Remove unused commit_list from blame viewer
git-gui: Automatically expand the line number column as needed
git-gui: Make the line number column slightly wider in blame
git-gui: Use lighter colors in blame view
git-gui: Remove unnecessary space between columns in blame viewer
git-gui: Remove the loaded column from the blame viewer
git-gui: Clip the commit summaries in the blame history menu
...

gitweb: '--cc' for merges in 'commitdiff' viewJakub Narebski Fri, 8 Jun 2007 11:33:28 +0000 (13:33 +0200)

gitweb: '--cc' for merges in 'commitdiff' view

Allow choosing between '-c' (combined diff) and '--cc' (compact
combined) diff format in 'commitdiff' view for merge (multiparent)
commits. Default is now '--cc'.

In the bottom part of navigation bar there is link allowing to change
diff format: "combined" for '-c' (when using '--cc') and "compact" for
'--cc' (when using '-c'), just on the right of "raw" link to
'commitdiff_plain" view.

About patchset part of diff --cc output: the difftree (whatchanged
table) has "patch" links to anchors to individual patches (on the same
page). The --cc option further compresses the patch output by
omitting some hunks; when this optimization makes all hunks disappear,
the patch is not shown (like in any other "empty diff" case). But the
fact that patch has been simplified out is not reflected in the raw
(difftree) part of diff output; the raw part is the same for '-c' and
'--cc' options. As correcting difftree is rather out of the question,
as it would require scanning patchset part before writing out
difftree, we add "Simple merge" empty diffs as a place to have anchor
to in place of those simplified out and removed patches.

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

gitweb: Add links to blobdiffs in from-file/to-file... Jakub Narebski Fri, 8 Jun 2007 11:32:44 +0000 (13:32 +0200)

gitweb: Add links to blobdiffs in from-file/to-file header for merges

Add links to diff to file ('blobdiff' view) for each of individual
versions of the file in a merge commit to the from-file/to-file header
in the patch part of combined 'commitdiff' view for merges.

The from-file/to-file header for combined diff now looks like:

--- _1_/_git-gui/git-gui.sh_
--- _2_/_git-gui.sh_
+++ b/_git-gui/git-gui.sh_

where _<filename>_ link is link to appropriate version of a file
('blob' view), and _<n>_ is link to respective diff to mentioned
version of a file ('blobdiff' view). There is even hint provided in
the form of title attribute.

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

gitweb: Create special from-file/to-file header for... Jakub Narebski Fri, 8 Jun 2007 11:29:49 +0000 (13:29 +0200)

gitweb: Create special from-file/to-file header for combined diff

Instead of using default, diff(1) like from-file/to-file header for
combined diff (for a merge commit), which looks like:

--- a/git-gui/git-gui.sh
+++ b/_git-gui/git-gui.sh_

(where _link_ denotes [hidden] hyperlink), create from-file(n)/to-file
header, using "--- <n>/_<filename>_" for each of parents, e.g.:

--- 1/_git-gui/git-gui.sh_
--- 2/_git-gui.sh_
+++ b/_git-gui/git-gui.sh_

Test it on one of merge commits involving rename, e.g.
95f97567c1887d77f3a46b42d8622c76414d964d (rename at top)
5bac4a671907604b5fb4e24ff682d5b0e8431931 (file from one branch)

This is mainly meant to easier see renames in a merge commit.

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

gitweb: Split git_patchset_body into separate subroutinesJakub Narebski Fri, 8 Jun 2007 11:27:42 +0000 (13:27 +0200)

gitweb: Split git_patchset_body into separate subroutines

This commit makes git_patchset_body easier to read, and reduces level of
nesting and indent level. It adds more lines that it removes because of
extra parameter passing in subroutines, and subroutine calls in
git_patchset_body. Also because there are few added comments.

Below there are descriptions of all split-off subroutines:

Separate formatting "git diff" header into format_git_diff_header_line.
While at it fix it so it always escapes pathname. It would be even more
useful if we decide to use `--cc' for merges, and need to generate by
hand empty patches for anchors.

Separate formatting extended (git) diff header lines into
format_extended_diff_header_line. This one is copied without changes.

Separate formatting two-lines from-file/to-file diff header into
format_diff_from_to_header subroutine. While at it fix it so it always
escapes pathname. Beware calling convention: it takes _two_ lines.

Separate generating %from and %to hashes (with info used among others to
generate hyperlinks) into parse_from_to_diffinfo subroutine. This one is
copied without changes.

Separate checking if file was deleted (and among others therefore does
not have link to the result file) into is_deleted subroutine. This would
allow us to easily change the algotithm to find if file is_deleted in
the result.

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

gitweb: Improve "next" link in commitdiff viewJakub Narebski Fri, 8 Jun 2007 11:26:31 +0000 (13:26 +0200)

gitweb: Improve "next" link in commitdiff view

Check if 'hp' (hash_parent) parameter to 'commitdiff' view is one of
'h' (hash) commit parents, i.e. if commitdiff is of the form
"<commit>^<n> <commit>", and mark it as such in the bottom part of
navigation bar. The "next" link in commitdiff view was introduced
in commit 151602df00b8e5c5b4a8193f59a94b85f9b5aebc

If 'hb' is n-th parent of 'h', show the following at the bottom
of navigation bar:
(from parent n: _commit_)

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

gitweb: Provide links to commitdiff to each parent... Jakub Narebski Fri, 8 Jun 2007 11:24:56 +0000 (13:24 +0200)

gitweb: Provide links to commitdiff to each parent in 'commitdiff' view

Since commit-fb1dde4a we show combined diff for merges in 'commitdiff'
view, and since commit-208ecb2e also in 'commit' view. Sometimes
though one would want to see diff to one of merge commit parents. It
is easy in 'commit' view: in the commit header part there are "diff"
links for each of parent header. This commit adds such links also for
'commitdiff' view.

Add to difftree / whatchanged table row with "1", "2", ... links to
'commitdiff' view for diff with n-th parent for merge commits, as a
table header. This is visible only in 'comitdiff' view, and only for
a merge commit (comit with more than one parent).

To save space links are shown as "n", where "n" is number of a parent,
and not as for example shortened (to 7 characters) sha1 of a parent
commit. To make it easier to discover what links is for, each link
has 'title' attribute explaining the link.

Note that one would need to remember that difftree table in 'commit'
view has one less column (it doesn't have "patch" link column), if one
would want to add such table header also in 'commit' view.

Example output:
1 2 3
Makefile patch | diff1 | diff2 | diff3 | blob | history
cache.h patch | diff1 | diff2 | diff3 | blob | history

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

Merge branch 'maint'Junio C Hamano Sun, 10 Jun 2007 23:45:08 +0000 (16:45 -0700)

Merge branch 'maint'

* maint:
tutorial: use "project history" instead of "changelog" in header
Documentation: user-manual todo
user-manual: add a missing section ID
Fix typo in remote branch example in git user manual
user-manual: quick-start updates

mktag: minimally update the description.Junio C Hamano Sun, 10 Jun 2007 23:00:36 +0000 (16:00 -0700)

mktag: minimally update the description.

It lacked a description for the (historically) optional tagger header line.

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

Makefile: add an explicit rule for building assembly... Linus Torvalds Wed, 30 May 2007 17:42:41 +0000 (10:42 -0700)

Makefile: add an explicit rule for building assembly output

In the kernel we have a rule for *.c -> *.s files exactly because
it's nice to be able to easily say "ok, what does that generate".

Here's a patch to add such a rule to git too, in case anybody is
interested. It makes it much simpler to just do

make sha1_file.s

and look at the compiler-generated output that way, rather than having to
fire up gdb on the resulting binary.

(Add -fverbose-asm or something if you want to, it can make the result
even more readable)

[jc: add *.s to .gitignore]

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

tutorial: use "project history" instead of "changelog... J. Bruce Fields Sun, 10 Jun 2007 20:20:34 +0000 (16:20 -0400)

tutorial: use "project history" instead of "changelog" in header

The word "changelog" seems a little too much like jargon to me, and beginners
must understand section headers so they know where to look for help.

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

Documentation: user-manual todoJ. Bruce Fields Tue, 6 Feb 2007 07:55:07 +0000 (02:55 -0500)

Documentation: user-manual todo

Some more user-manual todo's: how to share objects between repositories, how to
recover.

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

user-manual: add a missing section IDJ. Bruce Fields Tue, 5 Jun 2007 22:42:58 +0000 (18:42 -0400)

user-manual: add a missing section ID

I forgot to give an ID for this section.

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

Fix typo in remote branch example in git user manualGerrit Pape Tue, 5 Jun 2007 08:47:51 +0000 (08:47 +0000)

Fix typo in remote branch example in git user manual

In Documentation/user-manual.txt the example
$ git checkout --track -b origin/maint maint
under "Getting updates with git pull", should read
$ git checkout --track -b maint origin/maint

This was noticed by Ron, and reported through
http://bugs.debian.org/427502

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>

user-manual: quick-start updatesJ. Bruce Fields Tue, 5 Jun 2007 22:33:27 +0000 (18:33 -0400)

user-manual: quick-start updates

Update text to reflect new position in appendix.

Update the name to reflect the fact that this is closer to reference
than tutorial documentation (as suggested by Jonas Fonseca).

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

git-mergetool: Make default selection of merge-tool... Theodore Ts'o Sun, 10 Jun 2007 15:17:30 +0000 (11:17 -0400)

git-mergetool: Make default selection of merge-tool more intelligent

Make git-mergetool prefer meld under GNOME, and kdiff3 under KDE. When
considering emerge and vimdiff, check $VISUAL and $EDITOR to see which the
user might prefer.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Josh Triplett <josh@freedesktop.org>

[PATCH] git-mergetool: Allow gvimdiff to be used as... Dan McGee Wed, 6 Jun 2007 01:19:47 +0000 (21:19 -0400)

[PATCH] git-mergetool: Allow gvimdiff to be used as a mergetool

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Acked-by: "Theodore Ts'o" <tytso@mit.edu>

Fix updating/creating remotes/p4/* heads from origin... Simon Hausmann Sun, 10 Jun 2007 08:57:40 +0000 (10:57 +0200)

Fix updating/creating remotes/p4/* heads from origin/p4/*

Signed-off-by: Simon Hausmann <simon@lst.de>

git-blame -w: ignore whitespaceJunio C Hamano Sun, 10 Jun 2007 01:14:56 +0000 (18:14 -0700)

git-blame -w: ignore whitespace

When refactoring code to split one iteration of a too deeply
nested loop into a separate function, it inevitably makes the
indentation levels shallower (that's the sole point of such a
refactoring). With "git blame -w", you can ignore such
re-indentation and pass blame for such moved lines to the
parent.

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

git-blame: do not indent with spaces.Junio C Hamano Sun, 10 Jun 2007 01:15:24 +0000 (18:15 -0700)

git-blame: do not indent with spaces.

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

Fixed the check to make sure to exclude the HEAD symbol... Simon Hausmann Sat, 9 Jun 2007 22:22:30 +0000 (00:22 +0200)

Fixed the check to make sure to exclude the HEAD symbolic refs when updating
the remotes/p4 branches from origin.

Signed-off-by: Simon Hausmann <simon@lst.de>

filter-branch: subdirectory filter needs --full-historyJohannes Sixt Fri, 8 Jun 2007 21:28:50 +0000 (23:28 +0200)

filter-branch: subdirectory filter needs --full-history

When two branches are merged that modify a subdirectory (possibly in
different intermediate steps) such that both end up identical, then
rev-list chooses only one branch. But when we filter history, we want to
keep both branches. Therefore, we must use --full-history.

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

filter-branch: Simplify parent computation.Johannes Sixt Fri, 8 Jun 2007 21:28:39 +0000 (23:28 +0200)

filter-branch: Simplify parent computation.

We can use git rev-list --parents when we list the commits to rewrite.
It is not necessary to run git rev-list --parents for each commit in the
loop.

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

Teach filter-branch about subdirectory filteringJohannes Schindelin Fri, 8 Jun 2007 00:30:35 +0000 (01:30 +0100)

Teach filter-branch about subdirectory filtering

With git-filter-branch --subdirectory-filter <subdirectory> you can
get at the history, as seen by a certain subdirectory. The history
of the rewritten branch will only contain commits that touched that
subdirectory, and the subdirectory will be rewritten to be the new
project root.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-branch: cleanup config file when deleting branchesGerrit Pape Sat, 9 Jun 2007 12:40:35 +0000 (12:40 +0000)

git-branch: cleanup config file when deleting branches

When deleting branches, remove the sections referring to these branches
from the config file.

Signed-off-by: Gerrit Pape <pape@smarden.org>

git-push: Update description of refspecs and add examplesJunio C Hamano Sat, 9 Jun 2007 18:01:23 +0000 (11:01 -0700)

git-push: Update description of refspecs and add examples

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

remote.c: "git-push frotz" should update what matches... Junio C Hamano Sat, 9 Jun 2007 08:37:14 +0000 (01:37 -0700)

remote.c: "git-push frotz" should update what matches at the source.

Earlier, when the local repository has a branch "frotz" and the
remote repository has a tag "frotz" (but not branch "frotz"),
"git-push frotz" mistakenly updated the tag at the remote side.
This was because the partial refname matching code was applied
independently on both source and destination side.

With this fix, when a colon-less refspec is given to git-push,
we first match it with the refs in the source repository, and
update the matching ref in the destination repository.

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

remote.c: fix "git push" weak match disambiguationJunio C Hamano Sat, 9 Jun 2007 08:23:53 +0000 (01:23 -0700)

remote.c: fix "git push" weak match disambiguation

When "git push A:B" is given, and A (or B) is not a full refname
that begins with refs/, we require an unambiguous match with an
existing ref. For this purpose, a match with a local branch or
a tag (i.e. refs/heads/A and refs/tags/A) is called a "strong
match", and any other match is called a "weak match". A partial
refname is unambiguous when there is only one strong match with
any number of weak matches, or when there is only one weak match
and no other match.

However, as reported by Sparse with Ramsay Jones recently,
count_refspec_match() function had a bug where a variable in an
inner block masked a different variable of the same name, which
caused the weak matches to be ignored.

This fixes it, and adds tests for the fix.

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

remote.c: minor clean-up of match_explicit()Junio C Hamano Sat, 9 Jun 2007 07:14:04 +0000 (00:14 -0700)

remote.c: minor clean-up of match_explicit()

When checking what ref the source refspec matches, we have no
business setting the default for the destination, so move that
code lower. Also simplify the result from the code block that
matches the source side by making it set matched_src only upon
unambiguous match.

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

remote.c: refactor creation of new dst refJunio C Hamano Sat, 9 Jun 2007 07:07:34 +0000 (00:07 -0700)

remote.c: refactor creation of new dst ref

This refactors open-coded sequence to create a new "struct ref"
and link it to the tail of dst list into a new function.

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

remote.c: refactor match_explicit_refs()Junio C Hamano Sat, 9 Jun 2007 06:22:58 +0000 (23:22 -0700)

remote.c: refactor match_explicit_refs()

This does not change functionality; just splits one block that
is deeply nested and indented out of a huge loop into a separate
function.

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

Merge branch 'maint'Junio C Hamano Sat, 9 Jun 2007 18:52:43 +0000 (11:52 -0700)

Merge branch 'maint'

* maint:
Make command description imperative statement, not third-person present.

Remove unnecessary code and comments on non-existing... Johan Herland Sat, 9 Jun 2007 00:12:37 +0000 (02:12 +0200)

Remove unnecessary code and comments on non-existing 8kB tag object restriction

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make command description imperative statement, not... william pursell Sat, 9 Jun 2007 15:44:12 +0000 (16:44 +0100)

Make command description imperative statement, not third-person present.

In several of the text messages, the tense of the verb is inconsistent.
For example, "Add" vs "Creates". It is customary to use imperative for
command description.

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

t5000: silence unzip availability checkRené Scharfe Sat, 9 Jun 2007 06:31:12 +0000 (08:31 +0200)

t5000: silence unzip availability check

unzip -v on (at least) Ubuntu prints a screenful of version info
to stdout. Get rid of it since we only want to know if unzip is
installed or not.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>

Merge branch 'aj/pack'Junio C Hamano Sat, 9 Jun 2007 09:06:31 +0000 (02:06 -0700)

Merge branch 'aj/pack'

* aj/pack:
pack-check: Sort entries by pack offset before unpacking them.

Merge branch 'js/merge'Junio C Hamano Sat, 9 Jun 2007 09:06:01 +0000 (02:06 -0700)

Merge branch 'js/merge'

* js/merge:
git-merge-file: refuse to merge binary files

cmd_log_init: remove parsing of --encoding command... Jeff King Wed, 16 May 2007 11:15:07 +0000 (07:15 -0400)

cmd_log_init: remove parsing of --encoding command line parameter

This was moved to the setup_revisions parsing in 7cbcf4d5, so it was
never being triggered.

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

Merge branch 'ar/wildcardpush'Junio C Hamano Sat, 9 Jun 2007 04:03:36 +0000 (21:03 -0700)

Merge branch 'ar/wildcardpush'

* ar/wildcardpush:
Test wildcard push/fetch
Fix push with refspecs containing wildcards

Merge branch 'ar/clone'Junio C Hamano Sat, 9 Jun 2007 04:03:04 +0000 (21:03 -0700)

Merge branch 'ar/clone'

* ar/clone:
Fix clone to setup the origin if its name ends with .git

also strip p4/ from local imports.Han-Wen Nienhuys Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)

also strip p4/ from local imports.

Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>

Merge branch 'master' of git://repo.or.cz/fast-exportHan-Wen Nienhuys Fri, 8 Jun 2007 21:19:23 +0000 (18:19 -0300)

Merge branch 'master' of git://repo.or.cz/fast-export

print error message when p4 print fails (eg. due to... Han-Wen Nienhuys Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)

print error message when p4 print fails (eg. due to permission problems)

Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>

cvsserver: Add some useful commandline optionsFrank Lichtenheld Thu, 7 Jun 2007 14:57:01 +0000 (16:57 +0200)

cvsserver: Add some useful commandline options

Make git-cvsserver understand some options inspired by
git-daemon, namely --base-path, --export-all, --strict-paths.

Also allow the caller to specify a whitelist of allowed
directories, again similar to git-daemon.

While already adding option parsing also support the common
--help and --version options.

Rationale:

While the gitcvs.enabled configuration option already
offers means to limit git-cvsserver access to a repository,
there are some use cases where other methods of access
control prove to be more useful.

E.g. if setting up a pserver for a collection of public
repositories one might want limit the exported repositories
to exactly the directory this collection is located whithout
having to worry about other repositories that might lie around
with the configuration variable set (never trust your users ;)

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Fri, 8 Jun 2007 09:55:19 +0000 (02:55 -0700)

Merge branch 'maint'

* maint:
checkout: do not get confused with ambiguous tag/branch names

Even more missing staticJunio C Hamano Fri, 8 Jun 2007 09:54:57 +0000 (02:54 -0700)

Even more missing static

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

More missing staticJunio C Hamano Fri, 8 Jun 2007 09:22:56 +0000 (02:22 -0700)

More missing static

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

More missing staticJunio C Hamano Fri, 8 Jun 2007 09:24:58 +0000 (02:24 -0700)

More missing static

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

Missing statics.Pierre Habouzit Thu, 7 Jun 2007 20:45:00 +0000 (22:45 +0200)

Missing statics.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Active_nr is unsigned, hence can't be < 0Pierre Habouzit Thu, 7 Jun 2007 20:44:59 +0000 (22:44 +0200)

Active_nr is unsigned, hence can't be < 0

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cvsserver: Make req_Root more critical of its input... Frank Lichtenheld Thu, 7 Jun 2007 14:57:00 +0000 (16:57 +0200)

cvsserver: Make req_Root more critical of its input data

The path submitted with the Root request has to be absolute
(cvs does it this way and it may save us some sanity checks
later)

If multiple roots are specified (e.g. because we use
pserver authentication which will already include the
root), ensure that they say all the same.

Probably neither is a security risk, and neither should ever
be triggered by a sane client, but when validating
input data, it's better to be save than sorry.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitview: Define __slots__ for CommitMichael Ellerman Wed, 30 May 2007 04:47:09 +0000 (14:47 +1000)

gitview: Define __slots__ for Commit

Define __slots__ for the Commit class. This reserves space in each Commit
object for only the defined variables. On my system this reduces heap usage
when viewing a kernel repo by 12% ~= 55868 KB.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitview: Use new-style classesMichael Ellerman Wed, 30 May 2007 04:47:08 +0000 (14:47 +1000)

gitview: Use new-style classes

This changes the Commit class to use new-style class, which has
been available since Python 2.2 (Dec 2001). This is a necessary
step in order to use __slots__[] declaration, so that we can
reduce the memory footprint in the next patch.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

checkout: do not get confused with ambiguous tag/branch... Junio C Hamano Fri, 8 Jun 2007 08:19:13 +0000 (01:19 -0700)

checkout: do not get confused with ambiguous tag/branch names

Although it is not advisable, we have always allowed a branch
and a tag to have the same basename (i.e. it is not illegal to
have refs/heads/frotz and refs/tags/frotz at the same time).
When talking about a specific commit, the interpretation of
'frotz' has always been "use tag and then check branch",
although we warn when ambiguities exist.

However "git checkout $name" is defined to (1) first see if it
matches the branch name, and if so switch to that branch; (2)
otherwise it is an instruction to detach HEAD to point at the
commit named by $name. We did not follow this definition when
$name appeared under both refs/heads/ and refs/tags/ -- we
switched to the branch but read the tree from the tagged commit,
which was utterly bogus.

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

Test wildcard push/fetchJunio C Hamano Fri, 8 Jun 2007 07:43:22 +0000 (00:43 -0700)

Test wildcard push/fetch

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

Fix push with refspecs containing wildcardsAlex Riesen Thu, 7 Jun 2007 23:43:05 +0000 (01:43 +0200)

Fix push with refspecs containing wildcards

Otherwise

git push 'remote-name' 'refs/heads/*:refs/remotes/other/*'

will consider references in "refs/heads" of the remote repository
"remote-name", instead of the ones in "refs/remotes/other", which
the given refspec clearly means.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui: Changed blame header bar background to match... gitgui-0.7.3Shawn O. Pearce Fri, 8 Jun 2007 06:02:48 +0000 (02:02 -0400)

git-gui: Changed blame header bar background to match main window

The main window's diff header bar background switched from orange
to gold recently, and I liked the effect it had on readability of
the text. Since I wanted the blame viewer to match, here it is.

Though this probably should be a user defined color, or at least
a constant somewhere that everyone can reference.

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

Only get the expensive branch mapping from the p4 serve... Simon Hausmann Fri, 8 Jun 2007 06:49:22 +0000 (08:49 +0200)

Only get the expensive branch mapping from the p4 server when not
syncing with the help of an origin remote (which we instead then use
to get new branches from).

Signed-off-by: Simon Hausmann <simon@lst.de>

Make git-p4 submit detect the correct reference (origin... Simon Hausmann Thu, 7 Jun 2007 20:54:32 +0000 (22:54 +0200)

Make git-p4 submit detect the correct reference (origin) branch when
working with multi-branch imports.

Signed-off-by: Simon Hausmann <simon@lst.de>

Make clone behave like git clone by default again.Simon Hausmann Thu, 7 Jun 2007 19:12:25 +0000 (21:12 +0200)

Make clone behave like git clone by default again.

Signed-off-by: Simon Hausmann <simon@lst.de>

Exclude the HEAD symbolic ref from the list of known... Marius Storm-Olsen Thu, 7 Jun 2007 13:28:04 +0000 (15:28 +0200)

Exclude the HEAD symbolic ref from the list of known branches

Signed-off-by: Marius Storm-Olsen <mstormo_git@storm-olsen.com>

Fix single branch import into remotesMarius Storm-Olsen Thu, 7 Jun 2007 13:13:59 +0000 (15:13 +0200)

Fix single branch import into remotes

Signed-off-by: Marius Storm-Olsen <mstormo_git@storm-olsen.com>

Fix git-p4 clone (defaultDestination)Marius Storm-Olsen Thu, 7 Jun 2007 13:08:33 +0000 (15:08 +0200)

Fix git-p4 clone (defaultDestination)

Signed-off-by: Marius Storm-Olsen <mstormo_git@storm-olsen.com>

Ensure that the commit message is Windows formated... Marius Storm-Olsen Thu, 7 Jun 2007 12:07:01 +0000 (14:07 +0200)

Ensure that the commit message is Windows formated (CRLF) before invoking the editor.

(The default editor on Windows (Notepad) doesn't handle Unix line endings)

Signed-off-by: Marius Storm-Olsen <marius@trolltech.com>

Fix depot-path determination for git-p4 submitSimon Hausmann Thu, 7 Jun 2007 11:10:20 +0000 (13:10 +0200)

Fix depot-path determination for git-p4 submit

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Fix git-p4 submitSimon Hausmann Thu, 7 Jun 2007 11:09:14 +0000 (13:09 +0200)

Fix git-p4 submit

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Fix git-p4 rebaseSimon Hausmann Thu, 7 Jun 2007 10:51:03 +0000 (12:51 +0200)

Fix git-p4 rebase

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Hack to make the multi-branch import work again with... Simon Hausmann Thu, 7 Jun 2007 07:41:53 +0000 (09:41 +0200)

Hack to make the multi-branch import work again with self.depotPaths now that
self.depotPath is gone

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Don't attempt to set the initialParent on multi-branch... Simon Hausmann Thu, 7 Jun 2007 07:39:51 +0000 (09:39 +0200)

Don't attempt to set the initialParent on multi-branch imports (useless).
At some point the code paths should be unified, but for now I need a working
git-p4 :)

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Fix common path "calculation" from logs of multiple... Simon Hausmann Thu, 7 Jun 2007 07:37:13 +0000 (09:37 +0200)

Fix common path "calculation" from logs of multiple branches.
Need to use min instead of max for prev/cur to avoid out-of-bounds
string access. Also treat "i" as index of the last match instead of
a length because in case of a complete match of the two strings
i was off by one.

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Fix support for "depot-path" in older git-p4 importsSimon Hausmann Thu, 7 Jun 2007 07:19:34 +0000 (09:19 +0200)

Fix support for "depot-path" in older git-p4 imports

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

War on whitespaceJunio C Hamano Thu, 7 Jun 2007 07:04:01 +0000 (00:04 -0700)

War on whitespace

This uses "git-apply --whitespace=strip" to fix whitespace errors that have
crept in to our source files over time. There are a few files that need
to have trailing whitespaces (most notably, test vectors). The results
still passes the test, and build result in Documentation/ area is unchanged.

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

Fix clone to setup the origin if its name ends with... Alex Riesen Wed, 6 Jun 2007 23:39:05 +0000 (16:39 -0700)

Fix clone to setup the origin if its name ends with .git

The problem is visible when cloning a local repo. The cloned
repository will have the origin url setup incorrectly: the origin name
will be copied verbatim in origin url of the cloned repository.
Normally, the name is to be expanded into absolute path.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use git-tag in git-cvsimportElvis Pranskevichus Sun, 3 Jun 2007 06:56:36 +0000 (02:56 -0400)

Use git-tag in git-cvsimport

Currently git-cvsimport tries to create tag objects directly via git-mktag
in a very broken way, e.g the stuff it writes into the tagger field of
the tag object doesn't really resemble the GIT_COMMITTER_IDENT. This makes
gitweb and possibly other tools that try to interpret tag objects to be
confused about tag date and authorship.

Fix this by calling git-tag instead. This also has a nice side effect of
not creating the tag object but only the lightweight tag as that's the only
thing CVS has anyways.

Signed-off-by: Elvis Pranskevichus <el@prans.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter-branch: always export GIT_DIR if it is setMatthias Lederhofer Wed, 6 Jun 2007 07:16:56 +0000 (09:16 +0200)

filter-branch: always export GIT_DIR if it is set

Currently filter-branch exports GIT_DIR only if it is an
relative path but git-sh-setup might also set GIT_DIR to an
absolute path that is not exported yet. Additionally export
GIT_WORK_TREE with GIT_DIR to ensure that cwd is used as
working tree even for bare repositories.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/filter' into ei/worktree+filterJunio C Hamano Wed, 6 Jun 2007 23:08:34 +0000 (16:08 -0700)

Merge branch 'js/filter' into ei/worktree+filter

* js/filter:
filter-branch: also don't fail in map() if a commit cannot be mapped
filter-branch: Use rev-list arguments to specify revision ranges.
filter-branch: fix behaviour of '-k'
filter-branch: use $(($i+1)) instead of $((i+1))
chmod +x git-filter-branch.sh
filter-branch: prevent filters from reading from stdin
t7003: make test repeatable
Add git-filter-branch

setup_git_directory: fix segfault if repository is... Matthias Lederhofer Wed, 6 Jun 2007 21:29:59 +0000 (23:29 +0200)

setup_git_directory: fix segfault if repository is found in cwd

Additionally there was a similar part calling setenv and getenv
in the same way which missed a check if getenv succeeded.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test GIT_WORK_TREEMatthias Lederhofer Wed, 6 Jun 2007 07:14:25 +0000 (09:14 +0200)

test GIT_WORK_TREE

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

extend rev-parse test for --is-inside-work-treeMatthias Lederhofer Wed, 6 Jun 2007 07:13:26 +0000 (09:13 +0200)

extend rev-parse test for --is-inside-work-tree

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use new semantics of is_bare/inside_git_dir/inside_work... Matthias Lederhofer Sun, 3 Jun 2007 14:48:16 +0000 (16:48 +0200)

Use new semantics of is_bare/inside_git_dir/inside_work_tree

Up to now to check for a working tree this was used:
!is_bare && !inside_git_dir
(the check for bare is redundant because is_inside_git_dir
returned already 1 for bare repositories).
Now the check is:
inside_work_tree && !inside_git_dir

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

introduce GIT_WORK_TREE to specify the work treeMatthias Lederhofer Wed, 6 Jun 2007 07:10:42 +0000 (09:10 +0200)

introduce GIT_WORK_TREE to specify the work tree

setup_gdg is used as abbreviation for setup_git_directory_gently.

The work tree can be specified using the environment variable
GIT_WORK_TREE and the config option core.worktree (the environment
variable has precendence over the config option). Additionally
there is a command line option --work-tree which sets the
environment variable.

setup_gdg does the following now:

GIT_DIR unspecified
repository in .git directory
parent directory of the .git directory is used as work tree,
GIT_WORK_TREE is ignored

GIT_DIR unspecified
repository in cwd
GIT_DIR is set to cwd
see the cases with GIT_DIR specified what happens next and
also see the note below

GIT_DIR specified
GIT_WORK_TREE/core.worktree unspecified
cwd is used as work tree

GIT_DIR specified
GIT_WORK_TREE/core.worktree specified
the specified work tree is used

Note on the case where GIT_DIR is unspecified and repository is in cwd:
GIT_WORK_TREE is used but is_inside_git_dir is always true.
I did it this way because setup_gdg might be called multiple
times (e.g. when doing alias expansion) and in successive calls
setup_gdg should do the same thing every time.

Meaning of is_bare/is_inside_work_tree/is_inside_git_dir:

(1) is_bare_repository
A repository is bare if core.bare is true or core.bare is
unspecified and the name suggests it is bare (directory not
named .git). The bare option disables a few protective
checks which are useful with a working tree. Currently
this changes if a repository is bare:
updates of HEAD are allowed
git gc packs the refs
the reflog is disabled by default

(2) is_inside_work_tree
True if the cwd is inside the associated working tree (if there
is one), false otherwise.

(3) is_inside_git_dir
True if the cwd is inside the git directory, false otherwise.
Before this patch is_inside_git_dir was always true for bare
repositories.

When setup_gdg finds a repository git_config(git_default_config) is
always called. This ensure that is_bare_repository makes use of
core.bare and does not guess even though core.bare is specified.

inside_work_tree and inside_git_dir are set if setup_gdg finds a
repository. The is_inside_work_tree and is_inside_git_dir functions
will die if they are called before a successful call to setup_gdg.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test git rev-parseMatthias Lederhofer Wed, 6 Jun 2007 07:01:21 +0000 (09:01 +0200)

test git rev-parse

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rev-parse: introduce --is-bare-repositoryMatthias Lederhofer Sun, 3 Jun 2007 14:46:36 +0000 (16:46 +0200)

rev-parse: introduce --is-bare-repository

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rev-parse: document --is-inside-git-dirMatthias Lederhofer Sun, 3 Jun 2007 14:46:04 +0000 (16:46 +0200)

rev-parse: document --is-inside-git-dir

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pack-check: Sort entries by pack offset before unpackin... Alexandre Julliard Sun, 3 Jun 2007 18:21:41 +0000 (20:21 +0200)

pack-check: Sort entries by pack offset before unpacking them.

Because of the way objects are sorted in a pack, unpacking them in
disk order is much more efficient than random access. Tests on the
Wine repository show a gain in pack validation time of about 35%.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sv/objfixes'Junio C Hamano Wed, 6 Jun 2007 22:43:24 +0000 (15:43 -0700)

Merge branch 'sv/objfixes'

* sv/objfixes:
Don't assume tree entries that are not dirs are blobs
git-cvsimport: Make sure to use $git_dir always instead of .git sometimes
fix documentation of unpack-objects -n
Accept dates before 2000/01/01 when specified as seconds since the epoch

Don't assume tree entries that are not dirs are blobsSam Vilain Wed, 6 Jun 2007 10:25:17 +0000 (22:25 +1200)

Don't assume tree entries that are not dirs are blobs

When scanning the trees in track_tree_refs() there is a "lazy" test
that assumes that entries are either directories or files. Don't do
that.

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