Commit Graph

1760 Commits

Author SHA1 Message Date
Felipe Contreras
5df4fad319 remote-bzr: use branch variable when appropriate
There should be no functional changes. Basically we want to reserve the
'repo' variable.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:47 -07:00
Felipe Contreras
b25df87fad remote-bzr: fix partially pushed merge
If part of the merge was already pushed, we don't have the blob_marks
available, however, the commits are already stored in bazaar, so we can
use the revision_tree to fetch the contents.

We want to do this only when there's no other option.

There's no easy way to test this.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:47 -07:00
Felipe Contreras
38e7167e9b remote-bzr: fixes for branch diverge
If the branches diverge we want to reset the pointer to where the remote
actually is. Since we can access remote branches just as easily as local
ones, let's do so.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:47 -07:00
Felipe Contreras
f38dfc4c32 remote-bzr: add support to push merges
In order to do that, we need to store the marks of every file, so that
they can be fetched when needed. Unfortunately we can't tell bazaar that
nothing changed, we need to send the data so that it can figure it out
by itself.

And since it will be requesting a bunch of information by the file_id,
it's better to have a helper dict (rev_files), so that we can fetch it
quickly.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:46 -07:00
Felipe Contreras
715d64fe99 remote-bzr: always try to update the worktree
And fail properly when we can't.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:46 -07:00
Felipe Contreras
aa12a431f3 remote-bzr: fix order of locking in CustomTree
It doesn't seem to make any difference, but revision_tree() requires a
lock.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:46 -07:00
Felipe Contreras
1816620800 remote-bzr: delay blob fetching until the very end
Might be more efficient, but the real reason to use the marks will be
revealed in upcoming patches.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:46 -07:00
Felipe Contreras
c80f4c7763 remote-bzr: cleanup CustomTree
This code was not used at all.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-30 22:06:46 -07:00
Ramkumar Ramachandra
7e6a0cc47d git-completion.bash: add remote.pushdefault to config list
224c2171 (remote.c: introduce remote.pushdefault, 2013-04-02)
introduced the remote.pushdefault configuration variable, but forgot
to teach git-completion.bash about it.  Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-29 09:57:47 -07:00
Ramkumar Ramachandra
72f7507710 git-completion.bash: add branch.*.pushremote to config list
9f765ce (remote.c: introduce branch.<name>.pushremote, 2013-04-02)
introduced the configuration variable branch.*.pushremote, but forgot
to teach git-completion.bash about it.  Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-29 09:57:44 -07:00
Junio C Hamano
01449e314f Merge branch 'maint'
* maint:
  complete: zsh: use zsh completion for the main cmd
  complete: zsh: trivial simplification
  git-completion.bash: complete branch.*.rebase as boolean
  git-completion.bash: add diff.submodule to config list
  git-completion.bash: lexical sorting for diff.statGraphWidth
2013-04-29 09:57:38 -07:00
Junio C Hamano
8301b976ed Merge branch 'fc/zsh-completion' into maint
* fc/zsh-completion:
  complete: zsh: use zsh completion for the main cmd
  complete: zsh: trivial simplification
2013-04-29 09:52:18 -07:00
Felipe Contreras
4911589bd1 complete: zsh: use zsh completion for the main cmd
So that we can have a nice zsh completion output:

% git <tab>
add       -- add file contents to the index
bisect    -- find by binary search the change that introduced a bug
branch    -- list, create, or delete branches
checkout  -- checkout a branch or paths to the working tree
clone     -- clone a repository into a new directory
commit    -- record changes to the repository
diff      -- show changes between commits, commit and working tree, etc
fetch     -- download objects and refs from another repository
grep      -- print lines matching a pattern
init      -- create an empty Git repository or reinitialize an existing one
log       -- show commit logs
merge     -- join two or more development histories together
mv        -- move or rename a file, a directory, or a symlink
pull      -- fetch from and merge with another repository or a local branch
push      -- update remote refs along with associated objects
rebase    -- forward-port local commits to the updated upstream head
reset     -- reset current HEAD to the specified state
rm        -- remove files from the working tree and from the index
show      -- show various types of objects
status    -- show the working tree status
tag       -- create, list, delete or verify a tag object signed with GPG

And other niceties, like 'git --git-dir=<tab>' showing only directories.

For the rest, the bash completion stuff is still used.

Also, add my copyright, since this more than a thin wrapper.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-29 09:52:06 -07:00
Felipe Contreras
1ca6d4bc42 complete: zsh: trivial simplification
There should be no functional changes.

The only reason I wrapped this code around a sub-function is because zsh
did the same in it's bashcompinit script in order to declare the special
variable 'words' as hidden, but only in this context.

There's no need for that any more since we access __git_main directly,
so 'words' is not modified, so there's no need for the sub-function.

In zsh mode the array indexes are different though.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-29 09:52:06 -07:00
Ramkumar Ramachandra
a05490edbf git-completion.bash: complete branch.*.rebase as boolean
6fac1b83 (completion: add missing config variables, 2009-06-29) added
"rebase" to the list of completions for "branch.*.*", but forgot to
specify completions for the values that this configuration variable
can take (namely "false" and "true").  Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-29 08:07:23 -07:00
Ramkumar Ramachandra
2651baaea9 git-completion.bash: add diff.submodule to config list
c47ef57 (diff: introduce diff.submodule configuration variable,
2012-11-13) introduced the diff.submodule configuration variable, but
forgot to teach git-completion.bash about it.  Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-29 08:07:23 -07:00
Ramkumar Ramachandra
de7c201a10 git-completion.bash: lexical sorting for diff.statGraphWidth
df44483a (diff --stat: add config option to limit graph width,
2012-03-01) added the option diff.startGraphWidth to the list of
configuration variables in git-completion.bash, but failed to notice
that the list is sorted alphabetically.  Move it to its rightful place
in the list.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-29 08:07:22 -07:00
Felipe Contreras
ea57352182 completion: add missing format-patch options
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-27 16:09:47 -07:00
Felipe Contreras
877ee9cc7e remote-bzr: strip extra newline
It's added by fast-export, the user didn't type it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:27 -07:00
Felipe Contreras
4d74cd4725 remote-bzr: tell bazaar to be quiet
Otherwise we get notification, progress bars, and what not.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:27 -07:00
Felipe Contreras
d82c912c43 remote-bzr: store converted URL
Bazaar might convert the URL to something more appropriate, like an
absolute path. Lets store that instead of the original URL, which won't
work from a different working directory if it's relative.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:27 -07:00
Felipe Contreras
6134caf2c1 remote-hg: use hashlib instead of hg sha1 util
To be in sync with remote-bzr.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:27 -07:00
Felipe Contreras
aa93845661 remote-bzr: add support to push URLs
Just like in remote-hg.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:27 -07:00
Felipe Contreras
d6bb9136c9 remote-bzr: fix bad state issue
Carried from remote-hg.

The problem reportedly happened after doing a push that fails, the abort
causes the state of remote-hg to go bad, this happens because
remote-hg's marks are not stored, but 'git fast-export' marks are.

Ensure that the marks are _always_ stored.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:26 -07:00
Felipe Contreras
23df5e40f0 remote-hg: remove extra check
Not needed since we use xrange ourselves.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:26 -07:00
Felipe Contreras
75301a4588 remote-helpers: trivial cleanups
No functional changes. Typos, unused variables, redundant operations,
and white-spaces.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 15:20:26 -07:00
Junio C Hamano
c8c82b1ba3 Merge branch 'fc/remote-hg'
* fc/remote-hg:
  remote-hg: strip extra newline
  remote-hg: use marks instead of inlined files
  remote-hg: small performance improvement
  remote-hg: allow refs with spaces
  remote-hg: don't update bookmarks unnecessarily
  remote-hg: add support for schemes extension
  remote-hg: improve email sanitation
  remote-hg: add custom local tag write code
  remote-hg: write tags in the appropriate branch
  remote-hg: custom method to write tags
  remote-hg: add support for tag objects
  remote-hg: add branch_tip() helper
  remote-hg: properly mark branches up-to-date
  remote-hg: use python urlparse
  remote-hg: safer bookmark pushing
  remote-helpers: avoid has_key
2013-04-26 15:19:03 -07:00
Junio C Hamano
df8597258e Merge branch 'fc/remote-bzr'
* fc/remote-bzr:
  remote-bzr: use proper push method
2013-04-26 15:18:26 -07:00
Junio C Hamano
e27004e341 Sync with 1.8.2.2 2013-04-26 13:00:48 -07:00
Junio C Hamano
1a475c4a2f Merge branch 'fc/untracked-zsh-prompt' into maint
* fc/untracked-zsh-prompt:
  prompt: fix untracked files for zsh
2013-04-26 11:12:30 -07:00
Torsten Bögershausen
86c5e148c9 test-hg-hg-git.sh: do not use export X=Y
The shell syntax "export X=Y" is not understood by all shells.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 09:53:52 -07:00
Torsten Bögershausen
93cd8d970b test-hg-bidi.sh: do not use export X=Y
The shell syntax "export X=Y A=B" is not understood by all shells.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-26 09:53:31 -07:00
Felipe Contreras
fbd3f0e53c remote-bzr: use proper push method
Do not just randomly synchronize the revisions with no checks at
all.

I don't have any evidence that there's anything wrong with the
current code, which Bazaar seems to use, but for different purposes.
Let's use the logic Bazaar UI uses to avoid surprises.

Also, add a non-ff check.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-25 15:34:37 -07:00
Junio C Hamano
2d0b07178d Sync with maint
* maint:
  Update draft release notes to 1.8.2.2
  completion: remove duplicate block for "git commit -c"
  cherry-pick/revert: make usage say '<commit-ish>...'
2013-04-24 16:30:04 -07:00
Mårten Kongstad
7612e61e33 completion: remove duplicate block for "git commit -c"
Remove one of two consecutive, identical blocks for "git commit -c".

This was caused by a mechanical mismerge at d931e2fb25 (Merge
branch 'mp/complete-paths', 2013-02-08).  The side branch wanted to
add this block at fea16b47 but the same fix was done independently
at 685397585 already.

Signed-off-by: Mårten Kongstad <marten.kongstad@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-24 16:05:07 -07:00
Junio C Hamano
741917f40c Merge branch 'fc/untracked-zsh-prompt'
* fc/untracked-zsh-prompt:
  prompt: fix untracked files for zsh
2013-04-23 11:16:58 -07:00
Felipe Contreras
160695949a remote-hg: strip extra newline
There's no functional change since mercurial commit operation strips
that anyway, but that's no excuse for us not to do the right thing. So
let's be explicit about it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:33:37 -07:00
Felipe Contreras
97253a2332 remote-hg: use marks instead of inlined files
So that we can find already exported ones. We can never be 100% sure
that we already exported such data, due to mercurial design, it at least
sometimes we should detect them, and so should give us some performance
boost.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:33:32 -07:00
Felipe Contreras
1a2636c297 remote-hg: small performance improvement
Load previous manifest first as Mercurial does; for caching reasons.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:55 -07:00
Felipe Contreras
b0f6c5835d remote-hg: allow refs with spaces
Mercurial supports them, Git doesn't.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:55 -07:00
Felipe Contreras
7c0580586f remote-hg: don't update bookmarks unnecessarily
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:55 -07:00
Felipe Contreras
891122266f remote-hg: add support for schemes extension
So that we can use shortened URLs, for example 'bb:://felipec/repo'
(Bitbucket).

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:55 -07:00
Felipe Contreras
a2e462c5b5 remote-hg: improve email sanitation
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:54 -07:00
Felipe Contreras
a2f7b6f8a9 remote-hg: add custom local tag write code
There's no point in calling the tag method for such simple action. Not
that we care much about the hg-git compat mode, it's mostly just for
comparison testing purposes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:54 -07:00
Felipe Contreras
e1760f8c2c remote-hg: write tags in the appropriate branch
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:54 -07:00
Felipe Contreras
68d4f4f3e9 remote-hg: custom method to write tags
The one from mercurial is meant for users, on top of the latest tip.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:54 -07:00
Felipe Contreras
299789c22c remote-hg: add support for tag objects
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:54 -07:00
Felipe Contreras
aeebca0bd2 remote-hg: add branch_tip() helper
Idea from gitifyhg, the backwards compatibility is how Mercurial used to
do it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:53 -07:00
Felipe Contreras
7e31e1fea5 remote-hg: properly mark branches up-to-date
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:53 -07:00
Felipe Contreras
846cc77676 remote-hg: use python urlparse
It's simpler, and we don't need to depend on certain Mercurial versions.

Also, now we don't update the URL if 'file://' is not present.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-22 15:25:53 -07:00