1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-18 06:54:55 +01:00
Commit graph

18643 commits

Author SHA1 Message Date
Johannes Schindelin
d3c9634eac git-svn: always initialize with core.autocrlf=false
It has been reported time and time again in relation to msysGit that
git-svn does not work well when core.autocrlf has any value other than
'false'.  So let's make it so by default.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-11 22:21:59 -07:00
Dan McGee
b6c29915d2 Update delta compression message to be less misleading
In the case of a small repository, pack-objects is smart enough to not
start more threads than necessary. However, the output to the user always
reports the value of the pack.threads configuration and not the real
number of threads to be used.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-11 22:21:59 -07:00
Ben Jackson
88ec205477 git-svn: Save init/clone --ignore-paths in config
The --ignored-paths argument is now stored as
"svn-remote.$REMOTE_NAME.ignore-paths" in the config file.

[ew: edited subject and message]
Signed-off-by: Ben Jackson <ben@ben.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
2009-04-11 17:55:37 -07:00
Ben Jackson
0d8bee71af git-svn: Add per-svn-remote ignore-paths config
The --ignore-paths option to fetch is very useful for working on a subset
of a SVN repository.  For proper operation, every command that causes a
fetch (explicit or implied) must include a matching --ignore-paths option.

This patch adds a persistent svn-remote.$repo_id.ignore-paths config by
promoting Fetcher::is_path_ignored to a member function and initializing
$self->{ignore_regex} in Fetcher::new.  Command line --ignore-paths is
still recognized and acts in addition to the config value.

Signed-off-by: Ben Jackson <ben@ben.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
2009-04-11 17:55:37 -07:00
Boris Byk
6ea4203288 git-svn: speed up blame command
'git svn blame' now uses the 'git cat-file --batch' command to
speed up resolving SVN revision number out of commit SHA by
removing fork+exec overhead.

[ew: enforced 80-column line wrap]

Signed-off-by: Boris Byk <boris.byk@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
2009-04-11 17:55:04 -07:00
Jason Merrill
c2abd83fea git-svn: add fetch --parent option
Signed-off-by: Jason Merrill <jason@redhat.com>
Acked-By: Eric Wong <normalperson@yhbt.net>
2009-04-11 17:53:52 -07:00
Ferry Huberts
70af4e9bef Fix misspelled mergetool.keepBackup
In several places mergetool.keepBackup was misspelled as merge.keepBackup.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-11 12:20:17 -07:00
Erik Broes
79f72b9763 git-shell: Add 'git-upload-archive' to allowed commands.
This allows for example gitosis to allow use of 'git archive --remote' in a
controlled environment.

Signed-off-by: Erik Broes <erikbroes@ripe.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-11 11:01:15 -07:00
Linus Torvalds
8f8c6fafd9 Allow users to un-configure rename detection
On Thu, 9 Apr 2009, Linus Torvalds wrote:
>
> 	[diff]
> 		renames = no

Btw, while doing this, I also though that "renames = on/off" made more
sense, but while we allow yes/no and true/false for booleans, we don't
allow on/off.

Should we? Maybe. Here's a stupid patch.

		Linus

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-11 11:00:45 -07:00
Paul Mackerras
010509f2de gitk: Add a command to compare two strings of commits
This adds a row context menu command to compare this commit and its
descendants with the marked commit and its descendants.  The results
are shown in the bottom-left pane.  Commits are compared by checking
whether their headlines are the same and their patches have the same
patch ID as generated by git patch-id.

Merges are ignored and skipped over (as long as they have one
descendant).  If two commits have the same patch ID then the process
will continue and compare their descendants, as long as they both have
exactly one descendant.  If either commit has 0 or 2 or more descendants,
the comparison stops there.  There is currently a limit of 100
comparisons.

This can be useful for checking whether one string of commits is just
a rebased version of another string of commits.  Mark the end of one
string (i.e. the oldest commit in the string) and invoke "Compare with
marked commit" on the end of the other string.

As this is implemented, the UI will be unresponsive while the results
are being generated.  This should be fixed.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-09 22:10:20 +10:00
Jeff King
27845e9548 add tests for remote groups
This tries to systematically cover existing behavior, and
also mark some expect_failure cases for desired behavior.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-09 01:30:06 -07:00
Junio C Hamano
e37347bba6 Update draft release notes to 1.6.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-09 00:04:55 -07:00
Junio C Hamano
796b13781a Merge branch 'maint'
* maint:
  Start 1.6.2.3 preparation
  process_{tree,blob}: Remove useless xstrdup calls
  git-pull.sh: better warning message for "git pull" on detached head.

Conflicts:
	RelNotes
2009-04-08 23:47:23 -07:00
Junio C Hamano
db12d97542 Start 1.6.2.3 preparation
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-08 23:40:33 -07:00
Junio C Hamano
bff82d0cda Merge branch 'jc/shared-literally' into maint
* jc/shared-literally:
  t1301: loosen test for forced modes
  set_shared_perm(): sometimes we know what the final mode bits should look like
  move_temp_to_file(): do not forget to chmod() in "Coda hack" codepath
  Move chmod(foo, 0444) into move_temp_to_file()
  "core.sharedrepository = 0mode" should set, not loosen
2009-04-08 23:23:41 -07:00
Junio C Hamano
197cf8d59c Merge branch 'jc/maint-1.6.0-diff-borrow-carefully' into maint
* jc/maint-1.6.0-diff-borrow-carefully:
  diff --cached: do not borrow from a work tree when a path is marked as assume-unchanged
2009-04-08 23:23:17 -07:00
Junio C Hamano
0122cf6611 Merge branch 'maint-1.6.1' into maint
* maint-1.6.1:
  process_{tree,blob}: Remove useless xstrdup calls
2009-04-08 23:22:09 -07:00
Junio C Hamano
f7af75777f Merge branch 'maint-1.6.0' into maint-1.6.1
* maint-1.6.0:
  process_{tree,blob}: Remove useless xstrdup calls
2009-04-08 23:22:05 -07:00
Junio C Hamano
c3067cbfb3 Merge branch 'jc/maint-1.6.0-keep-pack' into maint
* jc/maint-1.6.0-keep-pack:
  pack-objects: don't loosen objects available in alternate or kept packs
  t7700: demonstrate repack flaw which may loosen objects unnecessarily
  Remove --kept-pack-only option and associated infrastructure
  pack-objects: only repack or loosen objects residing in "local" packs
  git-repack.sh: don't use --kept-pack-only option to pack-objects
  t7700-repack: add two new tests demonstrating repacking flaws
  is_kept_pack(): final clean-up
  Simplify is_kept_pack()
  Consolidate ignore_packed logic more
  has_sha1_kept_pack(): take "struct rev_info"
  has_sha1_pack(): refactor "pretend these packs do not exist" interface
  git-repack: resist stray environment variable

Conflicts:
	t/t7700-repack.sh
2009-04-08 23:21:10 -07:00
Junio C Hamano
bb11eb31a2 Merge branch 'jc/maint-1.6.0-blame-s' into maint-1.6.1
* jc/maint-1.6.0-blame-s:
  blame: read custom grafts given by -S before calling setup_revisions()

Conflicts:
	builtin-blame.c
2009-04-08 23:02:17 -07:00
Junio C Hamano
1c9f54417e Merge branch 'bc/maint-1.6.1-branch-deleted-was' into maint-1.6.1
* bc/maint-1.6.1-branch-deleted-was:
  git-branch: display "was sha1" on branch deletion rather than just "sha1"
2009-04-08 23:01:15 -07:00
Junio C Hamano
1f398ee772 Merge branch 'js/maint-1.6.0-exec-path-env' into maint-1.6.1
* js/maint-1.6.0-exec-path-env:
  Propagate --exec-path setting to external commands via GIT_EXEC_PATH
2009-04-08 23:01:10 -07:00
Junio C Hamano
5b841d61c4 Merge branch 'tr/maint-1.6.1-doc-format-patch--root' into maint-1.6.1
* tr/maint-1.6.1-doc-format-patch--root:
  Documentation: format-patch --root clarifications
2009-04-08 23:00:21 -07:00
Björn Steinbrink
de551d472e process_{tree,blob}: Remove useless xstrdup calls
The name of the processed object was duplicated for passing it to
add_object(), but that already calls path_name, which allocates a new
string anyway. So the memory allocated by the xstrdup calls just went
nowhere, leaking memory.

This reduces the RSS usage for a "rev-list --all --objects" by about 10% on
the gentoo repo (fully packed) as well as linux-2.6.git:

    gentoo:
                    | old           | new
    ----------------|-------------------------------
    RSS             |       1537284 |       1388408
    VSZ             |       1816852 |       1667952
    time elapsed    |       1:49.62 |       1:48.99
    min. page faults|        417178 |        379919

    linux-2.6.git:
                    | old           | new
    ----------------|-------------------------------
    RSS             |        324452 |        292996
    VSZ             |        491792 |        460376
    time elapsed    |       0:14.53 |       0:14.28
    min. page faults|         89360 |         81613

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-08 22:58:43 -07:00
Jeff King
1b19ccd236 tests: skip perl tests if NO_PERL is defined
These scripts all test git programs that are written in
perl, and thus obviously won't work if NO_PERL is defined.
We pass NO_PERL to the scripts from the building Makefile
via the GIT-BUILD-OPTIONS file.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-08 22:42:16 -07:00
Jeff King
499c29394c Makefile: allow building without perl
For systems with a missing or broken perl, it is nicer to
explicitly say "we don't want perl" because:

  1. The Makefile knows not to bother with Perl-ish things
     like Git.pm.

  2. We can print a more user-friendly error message
     than "foo is not a git command" or whatever the broken
     perl might barf

  3. Test scripts that require perl can mark themselves and
     such and be skipped

This patch implements parts (1) and (2). The perl/
subdirectory is skipped entirely, gitweb is not built, and
any git commands which rely on perl will print a
human-readable message and exit with an error code.

This patch is based on one from Robin H. Johnson.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-08 22:14:56 -07:00
Paul Mackerras
b9fdba7ff8 gitk: Add a way to mark a commit, plus a "find descendant" command
This adds a context-menu command to put a mark on this commit.  There
is at most one marked commit at any time, and it is indicated by a box
drawn around the headline.  Once a commit is marked, two other
context-menu commands become available: one to select the marked commit,
and another to find the closest common descendant of this commit and
the marked commit.

The "find common descendant" command uses the displayed parent/child
relationships (i.e. the rewritten parent pointers produced by git log),
not the real parent/child relationships.  Currently the UI will be
unresponsive while gitk is working out the nearest common descendant;
this should be improved in future.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-09 09:34:46 +10:00
Jens Lehmann
b4c813bc71 git-gui: run post-checkout hook after clone
git-gui is using "git-read-tree -u" when cloning which doesn't
invoke the post-checkout hook as a plain git-clone would.
So git-gui must call the hook itself.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-08 07:42:54 -07:00
Shawn O. Pearce
4339d5109c Merge branch 'maint'
* maint:
  git-gui: Ensure consistent usage of mergetool.keepBackup
  git-gui: fix use of undeclared variable diff_empty_count
2009-04-08 07:41:13 -07:00
Ferry Huberts
fb25092a88 git-gui: Ensure consistent usage of mergetool.keepBackup
In several places merge.keepBackup is used i.s.o.
mergetool.keepBackup. This patch makes it all
consistent.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-08 07:40:58 -07:00
Joerg Bornemann
8052e788b5 git-gui: fix use of undeclared variable diff_empty_count
Commit 584fa9cc introduced the global variable diff_empty_count, which
is used in diff.tcl. This variable wasn't declared anywhere which
resulted in an ugly error message box instead of the intended
informative message.

Signed-off-by: Joerg Bornemann <joerg.bornemann@web.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-08 07:38:11 -07:00
Matthieu Moy
61e6108d94 git-pull.sh: better warning message for "git pull" on detached head.
Otherwise, git complains about not finding a branch to pull from in
'branch..merge', which is hardly understandable. While we're there,
reword the sentences slightly.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-08 00:39:51 -07:00
David Aguilar
21d0ba7ebb difftool/mergetool: refactor commands to use git-mergetool--lib
This consolidates the common functionality from git-mergetool and
git-difftool--helper into a single git-mergetool--lib scriptlet.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-08 00:25:24 -07:00
Jeff King
2d8a7f0b30 branch: show upstream branch when double verbose
This information is easily accessible when we are
calculating the relationship. The only reason not to print
it all the time is that it consumes a fair bit of screen
space, and may not be of interest to the user.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 23:22:15 -07:00
Jeff King
7c2b3029df make get_short_ref a public function
Often we want to shorten a full ref name to something "prettier"
to show a user. For example, "refs/heads/master" is often shown
simply as "master", or "refs/remotes/origin/master" is shown as
"origin/master".

Many places in the code use a very simple formula: skip common
prefixes like refs/heads, refs/remotes, etc. This is codified in
the prettify_ref function.

for-each-ref has a more correct (but more expensive) approach:
consider the ref lookup rules, and try shortening as much as
possible while remaining unambiguous.

This patch makes the latter strategy globally available as
shorten_unambiguous_ref.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 23:22:15 -07:00
Jeff King
8cae19d987 for-each-ref: add "upstream" format field
The logic for determining the upstream ref of a branch is
somewhat complex to perform in a shell script. This patch
provides a plumbing mechanism for scripts to access the C
logic used internally by git-status, git-branch, etc.

For example:

  $ git for-each-ref \
       --format='%(refname:short) %(upstream:short)' \
       refs/heads/
  master origin/master

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 23:22:15 -07:00
Jeff King
8db9a4b85d for-each-ref: refactor refname handling
This code handles some special magic like *-deref and the
:short formatting specifier. The next patch will add another
field which outputs a ref and wants to use the same code.

This patch splits the "which ref are we outputting" from the
actual formatting. There should be no behavioral change.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 23:18:14 -07:00
Junio C Hamano
6da14ee14f Merge branch 'maint'
* maint:
  Change double quotes to single quotes in message
  Documentation: clarify .gitattributes search
  git-checkout.txt: clarify that <branch> applies when no path is given.
  git-checkout.txt: fix incorrect statement about HEAD and index

Conflicts:
	Documentation/git-checkout.txt
2009-04-07 23:05:43 -07:00
Junio C Hamano
747f9d30ed Merge branch 'maint-1.6.1' into maint
* maint-1.6.1:
  Documentation: clarify .gitattributes search
  git-checkout.txt: clarify that <branch> applies when no path is given.
  git-checkout.txt: fix incorrect statement about HEAD and index
2009-04-07 23:05:14 -07:00
Jari Aalto
714fddf2fc Change double quotes to single quotes in message
Most of the time when we give branch name in the message, we quote it
inside a pair of single-quotes.  git-checkout uses double-quotes; this
patch corrects the inconsistency.

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 23:04:45 -07:00
Junio C Hamano
aa41cf8f43 Merge branch 'maint-1.6.0' into maint-1.6.1
* maint-1.6.0:
  Documentation: clarify .gitattributes search
  git-checkout.txt: clarify that <branch> applies when no path is given.
  git-checkout.txt: fix incorrect statement about HEAD and index
2009-04-07 22:51:14 -07:00
Junio C Hamano
9e36d11735 Merge branch 'lt/reflog-expire'
* lt/reflog-expire:
  Speed up reflog pruning of unreachable commits
  Clean up reflog unreachability pruning decision
2009-04-07 22:33:13 -07:00
Junio C Hamano
00f39fc995 Merge branch 'bs/maint-1.6.0-tree-walk-prefix'
* bs/maint-1.6.0-tree-walk-prefix:
  match_tree_entry(): a pathspec only matches at directory boundaries
  tree_entry_interesting: a pathspec only matches at directory boundary
2009-04-07 22:33:10 -07:00
Junio C Hamano
fe42fe4bca Merge branch 'ms/http-auth'
* ms/http-auth:
  Allow curl to rewind the read buffers
2009-04-07 22:33:05 -07:00
Junio C Hamano
a9906723b2 Merge branch 'js/maint-submodule-checkout'
* js/maint-submodule-checkout:
  Fix 'git checkout <submodule>' to update the index
2009-04-07 22:33:02 -07:00
Junio C Hamano
2149e0f6a6 Merge branch 'cb/maint-merge-recursive-submodule-fix'
* cb/maint-merge-recursive-submodule-fix:
  simplify output of conflicting merge
  update cache for conflicting submodule entries
  add tests for merging with submodules
2009-04-07 22:32:56 -07:00
Junio C Hamano
d65279d5bf Merge branch 'mh/html-path'
* mh/html-path:
  add --html-path to get the location of installed HTML docs
2009-04-07 22:32:51 -07:00
David Aguilar
9a62d72dfa mergetool: use $( ... ) instead of backticks
This makes mergetool consistent with Documentation/CodingGuidelines.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 22:19:56 -07:00
David Aguilar
e2dc2de917 bash completion: add git-difftool
This adds completion for difftool's --tool flag.
The known diff tool names were also consolidated into
a single variable.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 22:19:56 -07:00
David Aguilar
a904392eae difftool: add support for a difftool.prompt config variable
difftool now supports difftool.prompt so that users do not have to
pass --no-prompt or hit enter each time a diff tool is launched.
The --prompt flag overrides the configuration variable.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-07 22:19:56 -07:00