38249 Commits

Author SHA1 Message Date
Shawn O. Pearce
d3d717a4ad Add current branch in PS1 support to git-completion.bash.
Many users want to display the current branch name of the current git
repository as part of their PS1 prompt, much as their PS1 prompt might
also display the current working directory name.

We don't force our own PS1 onto the user.  Instead we let them craft
their own PS1 string and offer them the function __git_ps1 which they
can invoke to obtain either "" (when not in a git repository) or
"(%s)" where %s is the name of the current branch, as read from HEAD,
with the leading refs/heads/ removed.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-27 12:09:16 -08:00
Shawn O. Pearce
d33909bf6e Teach bash how to complete options for git-name-rev.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-27 12:09:10 -08:00
Shawn O. Pearce
f2bb9f8880 Hide plumbing/transport commands from bash completion.
Users generally are not going to need to invoke plumbing-level commands
from within one line shell commands.  If they are invoking these commands
then it is likely that they are glueing them together into a shell script
to perform an action, in which case bash completion for these commands is
of relatively little use.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-27 12:09:04 -08:00
Shawn O. Pearce
4ad91321ee Teach git-completion.bash how to complete git-merge.
Now that git-merge is high-level Porcelain users are going to expect
to be able to use it from the command line, in which case we really
should also be able to complete ref names as parameters.

I'm also including completion support for the merge strategies
that are supported by git-merge.sh, should the user wish to use a
different strategy than their default.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-27 12:08:58 -08:00
Sean
fde97d8ac6 Update documentation to remove incorrect GIT_DIFF_OPTS example.
Git no longer calls an external diff program to generate patches.
Remove the documentation which suggests that you can pass
arbitrary diff options via the GIT_DIFF_OPTS environment variable.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-27 12:08:36 -08:00
Junio C Hamano
3c23bea8ac Merge branch 'js/shortlog'
* js/shortlog:
  git-shortlog: make common repository prefix configurable with .mailmap
  git-shortlog: fix common repository prefix abbreviation.
  builtin git-shortlog is broken
  shortlog: fix "-n"
  shortlog: handle email addresses case-insensitively
  shortlog: read mailmap from ./.mailmap again
  shortlog: do not crash on parsing "[PATCH"
  Build in shortlog
2006-11-26 22:51:38 -08:00
Junio C Hamano
a22f542700 Merge branch 'jc/push-delete-ref'
* jc/push-delete-ref:
  Allow git push to delete remote ref.
2006-11-26 22:51:17 -08:00
Junio C Hamano
88ffc1f28a Merge branch 'jc/merge'
* branch 'jc/merge':
  git-merge: do not leak rev-parse output used for checking internally.
  git-merge: tighten error checking.
  merge: allow merging into a yet-to-be-born branch.
  git-merge: make it usable as the first class UI
  remove merge-recursive-old
2006-11-26 22:19:56 -08:00
Junio C Hamano
c175161638 git-merge: do not leak rev-parse output used for checking internally.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-26 22:19:42 -08:00
Junio C Hamano
51901e96bf git-merge: tighten error checking.
If a branch name to be merged is misspelled, the command leaked error
messages from underlying plumbing commands, which were helpful only
to people who know how the command are implemented to diagnose the
breakage, but simply puzzling and unhelpful for the end users.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-26 22:16:31 -08:00
Junio C Hamano
d63afe9ebb Merge branch 'jc/pack-peeled'
* jc/pack-peeled:
  Store peeled refs in packed-refs (take 2).
  Store peeled refs in packed-refs file.
2006-11-26 22:09:41 -08:00
Shawn O. Pearce
c15ad650c7 git-gui: Auto-update any A? or M? files during rescan.
If the user has partial includes disabled then it doesn't matter what
state the working directory is in; if the file has been included in
the next commit its index state is A or M and we should immediately
run update-index on the working directory file to bring the index in
sync with the working directory.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-27 00:48:49 -05:00
Shawn O. Pearce
f70c3a2cac git-gui: Enable resolution of merge conflicts.
If a file has a merge conflict (index state = U) the user will need to
run update-index on that file to resolve all stages down to stage 0,
by including the file in the working directory.

Like core Git we'll just trust the user that their resolution is
correct, and that they didn't just include the file into the commit
while merge conflicts still exist within the file.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-27 00:48:49 -05:00
Junio C Hamano
36f2587ffb grep: do not skip unmerged entries when grepping in the working tree.
We used to skip unmerged entries, which made sense for grepping
in the cached copies, but not for grepping in the working tree.

Noticed by Johannes Sixt.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-26 14:22:01 -08:00
Han-Wen Nienhuys
aabd76930f git-tag: allow empty tag message if -m is given explicitly.
Signed-off-by: Han-Wen Nienhuys <hanwen@xs4all.nl>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-26 12:24:44 -08:00
Junio C Hamano
9f6db11ac5 Merge branch 'jn/web'
* jn/web:
  gitweb: Make project description in projects list link to summary view
  gitweb: Use author_epoch for pubdate in gitweb feeds
  gitweb: Add author and contributor email to Atom feed
  gitweb: Add author and committer email extraction to parse_commit
  gitweb: Use git-show-ref instead of git-peek-remote
  gitweb: Do not use esc_html in esc_path
2006-11-25 22:54:45 -08:00
J. Bruce Fields
93ee7823c0 Documentation: clarify tutorial pull/merge discussion
Attempt to clarify somewhat the difference between pull and merge,
and give a little more details on the pull syntax.

I'm still not happy with this section: the explanation of the origin
branch isn't great, but maybe that should be left alone pending the
use-separate-remotes change; and we need to explain how to set up a
public repository and push to it.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 22:46:35 -08:00
Shawn O. Pearce
5e926cbf7e git-gui: Updated todo list.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 23:16:16 -05:00
Jakub Narebski
e88ce8a456 gitweb: Make project description in projects list link to summary view
Make (shortened) project description in the "projects list" view
hyperlink to the "summary" view of the project. Project names are
sometimes short; having project description be hyperling gives larger
are to click. While at it, display full description on mouseover via
'title' attribute to introduced link.

Additionally, fix whitespace usage in modified git_project_list_body
subroutine: tabs are for indent, spaces are for align.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 20:00:22 -08:00
Eric Wong
efe4631def git-svn: allow SVN:: lib users to track the root of the repository (again)
I broke this again in 747fa12cef73b6ca04fffaddaad7326cf546cdea.

Thanks to merlyn for pointing this out to me on IRC.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 19:59:32 -08:00
Shawn O. Pearce
9208487b34 git-gui: Set a proper title on our revert confirm dialog box.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 22:52:03 -05:00
Jakub Narebski
91fd2bf3fd gitweb: Use author_epoch for pubdate in gitweb feeds
Use creation date (author_epoch) instead of former commit date
(committer_epoch) as publish date in gitweb feeds (RSS, Atom).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 13:54:32 -08:00
Jakub Narebski
ab23c19d67 gitweb: Add author and contributor email to Atom feed
Add author email (from 'author_email') and contributor email (from
'committer_email') to items in the Atom format gitweb feed.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 13:54:32 -08:00
Jakub Narebski
ba00b8c1ed gitweb: Add author and committer email extraction to parse_commit
Extract author email to 'author_email' key, and comitter mail to
'committer_mail' key; uniquify committer and author lines handling
by the way.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 13:54:32 -08:00
Jakub Narebski
28b9d9f7c6 gitweb: Use git-show-ref instead of git-peek-remote
Use "git show-ref --dereference" instead of "git peek-remote
$projectroot/project" in git_get_references. git-show-ref is faster
than git-peek-remote (40ms vs 56ms user+sys for git.git repository);
even faster is reading info/refs file (if it exists), but the
information in info/refs can be stale; that and the fact that
info/refs is meant for dumb protocol transports, not for gitweb.

git-show-ref is available since v1.4.4; the output format is slightly
different than git-peek-remote output format, but we accept both.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 13:54:32 -08:00
Jakub Narebski
391862e345 gitweb: Do not use esc_html in esc_path
Do not use esc_html in esc_path subroutine to avoid double quoting;
expand esc_html body (except quoting) in esc_path.

Move esc_path before quot_cec and quot_upr. Add some comments.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 01:45:26 -08:00
Junio C Hamano
310b86d480 fetch-pack: do not barf when duplicate re patterns are given
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 01:33:06 -08:00
Junio C Hamano
d945d4be20 git-fetch: allow forcing glob pattern in refspec
Building on top of the earlier refspec glob pattern enhancement,
this allows a glob pattern to say the updates should be forced
by prefixing it with '+' as usual, like this:

	Pull: +refs/heads/*:refs/remotes/origin/*

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 01:10:10 -08:00
Junio C Hamano
cadd8a7d4d Merge branch 'master' into jc/globfetch
This is to pick up the fix made on master:

  git-fetch: exit with non-zero status when fast-forward check fails
2006-11-25 01:07:15 -08:00
Junio C Hamano
f64d7fd267 git-fetch: exit with non-zero status when fast-forward check fails
When update_local_ref() refuses to update a branch head due to
fast-forward check, it was not propagated properly in the call
chain and the command did not exit with non-zero status as a
result.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 01:04:28 -08:00
Shawn O. Pearce
84e0bf1de4 git-gui: Started implementation of switch_branch.
This implementation of switch_branch is not yet finished, and thus
it throws a "NOT FINISHED" error rather than completing the switch.
But its a rough sketch of the procedure required.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 04:04:24 -05:00
Shawn O. Pearce
85ab313ed3 git-gui: Misc. comment and formatting cleanups.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 03:38:39 -05:00
Shawn O. Pearce
bb1ad51a53 git-gui: Rename all_branches -> all_heads.
Since this list is really the set of refs which match "refs/heads/*" it
really is the set of heads and not necessarily the set of all branches,
as the remote tracking branches are not listed in this set, even if it
appears in the "refs/heads/*" namespace (e.g. an old style repository).

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 03:35:33 -05:00
Shawn O. Pearce
359ca42a4b git-gui: Automatically skip tracking branches in branch menu.
Since the user should not work on a tracking branch we automatically
hide any branch which is used as a tracking branch by either a
remote.<name>.fetch config entry or by a Pull: line in a remotes file.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 03:33:03 -05:00
Junio C Hamano
61f5cb7f0d git-commit: show --summary after successful commit.
Sometimes people accidentally commit files in wrong mode bits.
Show --summary output for the HEAD commit after successful commit
as a final sanity check.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 00:20:01 -08:00
Junio C Hamano
7595e2ee6e git-shortlog: make common repository prefix configurable with .mailmap
The code had "/pub/scm/linux/kernel/git/" hardcoded which was
too specific to the kernel project.

With this, a line in the .mailmap file:

	# repo-abbrev: /pub/scm/linux/kernel/git/

can be used to cause the substring to be abbreviated to /.../
on the title line of the commit message.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 00:07:54 -08:00
Junio C Hamano
c95044d4f3 git-shortlog: fix common repository prefix abbreviation.
The code to abbreviate the common repository prefix was totally
borked.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-25 00:01:27 -08:00
Shawn O. Pearce
2171bf4b44 git-gui: Abort on not implemented branch switching.
I'm not currently ready to implement branch switching, so I'm just
going to punt on it for now.  :-)

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 02:47:18 -05:00
Shawn O. Pearce
d90d83a3a9 git-gui: Parse off refs/remotes when showing current branch.
Even though the user shouldn't have a remote branch checked out, if
they do we should still show as short of the branch name as possible.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25 02:45:19 -05:00
Eric Wong
d25c26e771 git-svn: exit with status 1 for test failures
Some versions of the SVN libraries cause die() to exit with 255,
and 40cf043389ef4cdf3e56e7c4268d6f302e387fa0 tightened up
test_expect_failure to reject return values >128.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 23:17:00 -08:00
Eric Wong
747fa12cef git-svn: correctly access repos when only given partial read permissions
Sometimes users are given only read access to a subtree inside a
repository, and git-svn could not read log information (and thus
fetch commits) when connecting a session to the root of the
repository.  We now start an SVN::Ra session with the full URL
of what we're tracking, and not the repository root as before.

This change was made much easier with a cleanup of
repo_path_split() usage as well as improving the accounting of
authentication batons.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 23:16:58 -08:00
Junio C Hamano
67affd5173 git-branch -D: make it work even when on a yet-to-be-born branch
This makes "git branch -D other_branch" work even when HEAD
points at a yet-to-be-born branch.

Earlier, we checked the HEAD ref for the purpose of "subset"
check even when the deletion was forced (i.e. not -d but -D).
Because of this, you cannot delete a branch even with -D while
on a yet-to-be-born branch.

With this change, the following sequence that now works:

	mkdir newdir && cd newdir
	git init-db
	git fetch -k $other_repo refs/heads/master:refs/heads/othre
	# oops, typo
	git branch other othre
	git branch -D othre

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 23:10:23 -08:00
Lars Hjemli
75e6e21320 Add -v and --abbrev options to git-branch
The new -v option makes git-branch show the abbreviated sha1 + subjectline
for each branch.

Additionally, minimum abbreviation length can be specified with
--abbrev=<length>

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 20:52:54 -08:00
Junio C Hamano
983d2ee284 git-clone: stop dumb protocol from copying refs outside heads/ and tags/.
Most notably, the original code first copied refs/remotes/ that
remote side had to local, and overwrote them by mapping refs/heads/
from the remote when a dumb protocol transport was used.

This makes the clone behaviour by dumb protocol in line with the
git native and rsync transports.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 19:07:24 -08:00
Alexandre Julliard
4bcb310c25 fetch-pack: Do not fetch tags for shallow clones.
A better fix may be to only fetch tags that point to commits that we
are downloading, but git-clone doesn't have support for following
tags. This will happen automatically on the next git-fetch though.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 15:42:50 -08:00
Alexandre Julliard
d64d6c9fc7 get_shallow_commits: Avoid memory leak if a commit has been reached already.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 15:42:50 -08:00
Alexandre Julliard
d158631549 git-fetch: Reset shallow_depth before auto-following tags.
Otherwise fetching the tags could also fetch commits up to the
specified depth, which isn't the expected behavior.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 15:42:50 -08:00
Alexandre Julliard
1f2de76981 upload-pack: Check for NOT_SHALLOW flag before sending a shallow to the client.
A commit may have been put on the shallow list, and then reached from
another branch and marked NOT_SHALLOW without being removed from the
list.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 15:42:50 -08:00
Alexandre Julliard
d6491e3a21 fetch-pack: Properly remove the shallow file when it becomes empty.
The code was unlinking the lock file instead.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-11-24 15:42:49 -08:00
Junio C Hamano
176d45cb20 shallow clone: unparse and reparse an unshallowed commit
Otherwise we would not read the real parents from the commit
object.
2006-11-24 15:42:49 -08:00