1
0
mirror of https://github.com/git/git.git synced 2024-11-18 17:13:55 +01:00
Commit Graph

10117 Commits

Author SHA1 Message Date
Jakub Narebski
deaa01a9f5 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>
2007-06-10 16:57:48 -07:00
Jakub Narebski
90921740bd 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>
2007-06-10 16:57:48 -07:00
Jakub Narebski
ada3e1f733 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>
2007-06-10 16:57:48 -07:00
Jakub Narebski
47598d7a49 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>
2007-06-10 16:57:48 -07:00
Junio C Hamano
c85d4f1660 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
2007-06-10 16:45:08 -07:00
Junio C Hamano
6cfec03680 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>
2007-06-10 16:00:36 -07:00
Linus Torvalds
e36cb1c16d 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>
2007-06-10 15:15:17 -07:00
J. Bruce Fields
23c9ccb215 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>
2007-06-10 16:46:17 -04:00
J. Bruce Fields
d9bd321c7b 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>
2007-06-10 16:39:53 -04:00
J. Bruce Fields
8ceca74a39 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>
2007-06-10 16:38:50 -04:00
Gerrit Pape
1da158ea33 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>
2007-06-10 16:38:50 -04:00
J. Bruce Fields
99f171bb7a 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>
2007-06-10 16:38:50 -04:00
Theodore Ts'o
301ac38b12 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>
2007-06-10 11:17:30 -04:00
Dan McGee
730b5b45fb [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>
2007-06-10 08:27:29 -04:00
Junio C Hamano
e58db03bbe Merge branch 'maint'
* maint:
  Make command description imperative statement, not third-person present.
2007-06-09 11:52:43 -07:00
Johan Herland
e876e74111 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>
2007-06-09 10:51:46 -07:00
william pursell
29cf5e1245 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>
2007-06-09 10:42:48 -07:00
René Scharfe
27c96c4fd3 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>
2007-06-09 10:07:29 -07:00
Junio C Hamano
71e66ecf0f Merge branch 'aj/pack'
* aj/pack:
  pack-check: Sort entries by pack offset before unpacking them.
2007-06-09 02:06:31 -07:00
Junio C Hamano
89dd19e107 Merge branch 'js/merge'
* js/merge:
  git-merge-file: refuse to merge binary files
2007-06-09 02:06:01 -07:00
Jeff King
6668833437 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>
2007-06-09 02:03:30 -07:00
Junio C Hamano
684a93d958 Merge branch 'ar/wildcardpush'
* ar/wildcardpush:
  Test wildcard push/fetch
  Fix push with refspecs containing wildcards
2007-06-08 21:03:36 -07:00
Junio C Hamano
52912cce77 Merge branch 'ar/clone'
* ar/clone:
  Fix clone to setup the origin if its name ends with .git
2007-06-08 21:03:04 -07:00
Junio C Hamano
abc403f584 Merge branch 'maint'
* maint:
  checkout: do not get confused with ambiguous tag/branch names
2007-06-08 02:55:19 -07:00
Junio C Hamano
16befb8b7f Even more missing static
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-08 02:54:57 -07:00
Junio C Hamano
fcd056a6d2 More missing static
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-08 02:37:19 -07:00
Junio C Hamano
2d93b9face More missing static
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-08 02:37:19 -07:00
Pierre Habouzit
52fae7de4e Missing statics.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-08 02:37:19 -07:00
Pierre Habouzit
e1944f4074 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>
2007-06-08 02:37:18 -07:00
Frank Lichtenheld
4890888d74 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>
2007-06-08 02:37:18 -07:00
Michael Ellerman
225696af2c 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>
2007-06-08 02:37:18 -07:00
Michael Ellerman
709b148a90 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>
2007-06-08 02:37:18 -07:00
Junio C Hamano
5035242c47 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>
2007-06-08 01:19:13 -07:00
Junio C Hamano
bcdb34f70d Test wildcard push/fetch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-08 00:43:22 -07:00
Alex Riesen
6e66bf3c79 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>
2007-06-08 00:40:39 -07:00
Junio C Hamano
a6080a0a44 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>
2007-06-07 00:04:01 -07:00
Alex Riesen
defe13a24a 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>
2007-06-06 16:40:03 -07:00
Alexandre Julliard
3af51928ab 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>
2007-06-06 16:04:02 -07:00
Junio C Hamano
d44c782bbd 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
2007-06-06 15:43:24 -07:00
Sam Vilain
e2ac7cb5fb 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>
2007-06-06 15:43:18 -07:00
Michael Milligan
23fcdc7971 git-cvsimport: Make sure to use $git_dir always instead of .git sometimes
CVS import was failing on a couple repos I was trying to import.
I was setting GIT_DIR=newproj.git and using the -i flag, but this bug
was thwarting the effort...  evil CVS.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 15:23:35 -07:00
Sam Vilain
e59ade9f90 fix documentation of unpack-objects -n
unpack-objects -n didn't print the object list as promised on the
manual page, so alter the documentation to reflect the behaviour

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 15:20:13 -07:00
Johannes Sixt
a1a5a6347b Accept dates before 2000/01/01 when specified as seconds since the epoch
Tests with git-filter-branch on a repository that was converted from
CVS and that has commits reaching back to 1999 revealed that it is
necessary to parse dates before 2000/01/01 when they are specified
as seconds since 1970/01/01. There is now still a limit, 100000000,
which is 1973/03/03 09:46:40 UTC, in order to allow that dates are
represented as 8 digits.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 15:20:12 -07:00
Johannes Sixt
f07dfbad29 Makefile: Remove git-merge-base from PROGRAMS.
git-merge-base is a builtin.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 13:19:16 -07:00
Johannes Schindelin
3a86f36bed t5000: skip ZIP tests if unzip was not found
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 13:13:58 -07:00
Junio C Hamano
6abd0fb396 Merge branch 'mm/tag'
* mm/tag:
  Teach git-tag about showing tag annotations.
2007-06-06 02:29:41 -07:00
Junio C Hamano
11f68d9082 git-branch --track: fix tracking branch computation.
The original code did not take hierarchical branch names into account at all.

Tested-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 01:10:53 -07:00
Josh Triplett
2571ac6722 Fix typo in git-mergetool
Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 00:40:50 -07:00
Jon Loeliger
e6ff0f42bb Add the --numbered-files option to git-format-patch.
With this option, git-format-patch will generate simple
numbered files as output instead of the default using
with the first commit line appended.

This simplifies the ability to generate an MH-style
drafts folder with each message to be sent.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 00:35:15 -07:00
Pierre Habouzit
ec563e8153 $EMAIL is a last resort fallback, as it's system-wide.
$EMAIL is a system-wide setup that is used for many many many
applications. If the git user chose a specific user.email setup,
then _this_ should be honoured rather than $EMAIL.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 00:31:40 -07:00