share.py
37 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
/ hgext / share.py
Matt Mackall
|
r8801 | # Copyright 2006, 2007 Matt Mackall <mpm@selenic.com> | ||
# | ||||
# This software may be used and distributed according to the terms of the | ||||
Matt Mackall
|
r10263 | # GNU General Public License version 2 or any later version. | ||
Matt Mackall
|
r8801 | |||
Cédric Duval
|
r8894 | '''share a common history between several working directories''' | ||
Dirkjan Ochtman
|
r8873 | |||
Matt Mackall
|
r8801 | from mercurial.i18n import _ | ||
from mercurial import hg, commands | ||||
Matt Mackall
|
r8807 | def share(ui, source, dest=None, noupdate=False): | ||
Martin Geisler
|
r10798 | """create a new shared repository | ||
Matt Mackall
|
r8801 | |||
Martin Geisler
|
r9273 | Initialize a new repository and working directory that shares its | ||
history with another repository. | ||||
Matt Mackall
|
r8801 | |||
Greg Ward
|
r10256 | NOTE: using rollback or extensions that destroy/modify history | ||
(mq, rebase, etc.) can cause considerable confusion with shared | ||||
clones. In particular, if two shared clones are both updated to | ||||
the same changeset, and one of them destroys that changeset with | ||||
rollback, the other clone will suddenly stop working: all | ||||
operations will fail with "abort: working directory has unknown | ||||
parent". The only known workaround is to use debugsetparents on | ||||
the broken clone to reset it to a changeset that still exists | ||||
(e.g. tip). | ||||
Matt Mackall
|
r8801 | """ | ||
return hg.share(ui, source, dest, not noupdate) | ||||
cmdtable = { | ||||
"share": | ||||
(share, | ||||
[('U', 'noupdate', None, _('do not create a working copy'))], | ||||
Matt Mackall
|
r8807 | _('[-U] SOURCE [DEST]')), | ||
Matt Mackall
|
r8801 | } | ||
commands.norepo += " share" | ||||