Esempio n. 1
0
def listbookmarks():
    """List local and remote bookmarks"""
    local = sh.hg("log", "-r", sh.hg("bookmarks", "-T", "{node}"), "-T{desc}")
    remote = sh.hg(
        "log", "-r", sh.hg("bookmarks", "--remote", "-T", "{node}"), "-T{desc}"
    )
    return [local, remote]
Esempio n. 2
0
from __future__ import absolute_import

from testutil.dott import feature, sh, testtmp  # noqa: F401


feature.require(["py2"])


sh % "hg init repo"
sh % "cd repo"
sh % "touch foo"
sh % "hg add foo"
for i in range(12):
    open("foo", "ab").write("foo-%s\n" % i)
    sh.hg("ci", "-m", "foo-%s" % i)

sh % "hg export -v -o 'foo-%nof%N.patch' 2:tip" == r"""
    exporting patches:
    foo-01of10.patch
    foo-02of10.patch
    foo-03of10.patch
    foo-04of10.patch
    foo-05of10.patch
    foo-06of10.patch
    foo-07of10.patch
    foo-08of10.patch
    foo-09of10.patch
    foo-10of10.patch"""
sh % "hg export -v -o 'foo-%%%H.patch' 2:tip" == r"""
    exporting patches:
Esempio n. 3
0
# Unshelve should work on an ancestor of the original commit
sh % "hg shelve" == r"""
    shelved as default
    0 files updated, 0 files merged, 1 files removed, 0 files unresolved"""
sh % "hg up 0" == "0 files updated, 0 files merged, 1 files removed, 0 files unresolved"
sh % "hg unshelve" == r'''
    unshelving change 'default'
    rebasing shelved changes
    rebasing 325b64d70042 "shelve changes to: b"'''
sh % "hg status" == "A d"

# Test bug 4073 we need to enable obsolete markers for it
sh % "hg shelve" == r"""
    shelved as default
    0 files updated, 0 files merged, 1 files removed, 0 files unresolved"""
arg = sh.hg("--debug", "id", "-i", "-r", "1")
sh % ("hg debugobsolete %s" % arg) == ""
sh % "hg unshelve" == "unshelving change 'default'"

# Unshelve should leave unknown files alone (issue4113)
sh % "echo e" > "e"
sh % "hg shelve" == r"""
    shelved as default
    0 files updated, 0 files merged, 1 files removed, 0 files unresolved"""
sh % "hg status" == "? e"
sh % "hg unshelve" == "unshelving change 'default'"
sh % "hg status" == r"""
    A d
    ? e"""
sh % "cat e" == "e"
Esempio n. 4
0
sh % "setconfig format.use-zstore-commit-data=on"
sh % 'hg log -r "$H" -T "{desc}\\n"' == "H"

# Test the revlog-fallback mode migrates draft commits.

sh.setconfig("format.use-zstore-commit-data=off")

sh % "newrepo"
sh % "drawdag" << r"""
B
|
A
""" == ""

# Make A public.
sh.hg("debugremotebookmark", "master", "desc(A)")
sh % "hg log -r 'public()' -T '{desc} '" == "A"
sh % "hg log -r 'draft()' -T '{desc} '" == "B"

# Migrate.
sh.setconfig(
    "format.use-zstore-commit-data=on",
    "format.use-zstore-commit-data-revlog-fallback=on",
)

sh % "hg log -r 'desc(A)' -T '{desc}'" == "A"
sh % "hg log -r 'desc(B)' -T '{desc}'" == "B"

# Break revlog.

sh % "mv .hg/store/00changelog.d .hg/store/00changelog.d.bak"
Esempio n. 5
0
sh % "hg absorb -a" == r"""
    abort: no changeset to change
    [255]"""
sh % "hg revert -q -C m1 m2"

# Use a new repo:

sh % "newrepo"

# Make some commits to multiple files:

for f in ["a", "b"]:
    for i in [1, 2]:
        line = "%s line %s\n" % (f, i)
        open(f, "ab").write(line.encode("utf-8"))
        sh.hg("commit", "-A", f, "-m", "commit %s %s" % (f, i), "-q")

# Use pattern to select files to be fixed up:

sh % "sedi s/line/Line/ a b"
sh % "hg status" == r"""
    M a
    M b"""
sh % "hg absorb -a a" == r"""
    showing changes for a
            @@ -0,2 +0,2 @@
    6905bbb -a line 1
    4472dd5 -a line 2
    6905bbb +a Line 1
    4472dd5 +a Line 2
Esempio n. 6
0
def mkcommit(name):
    open(name, "wb").write(b"%s\n" % name.encode("utf8"))
    sh.hg("ci", "-m", "add %s" % name, "-A", name)
Esempio n. 7
0
from edenscm.mercurial.extensions import wrappedfunction
from testutil.dott import feature, sh, testtmp  # noqa: F401

# Setup repo
sh.newrepo()

now = int(time.time())

sh % "touch file1"
sh % "hg add file1"

for delta in [31536000, 86401, 86369, 3800, 420, 5]:
    committime = now - delta
    open("file1", "w").write("%s\n" % delta)
    sh.hg("commit", "-d", "%s 0" % committime, "-m",
          "Changeset %s seconds ago" % delta)

with wrappedfunction(time, "time", lambda orig: now + 1):
    # Check age ranges
    sh % "hg log -T '{rev} {desc}\\n' -r 'age(\"<30\")'" == "5 Changeset 5 seconds ago"
    sh % "hg log -T '{rev} {desc}\\n' -r 'age(\"<7m30s\")'" == r"""
        4 Changeset 420 seconds ago
        5 Changeset 5 seconds ago"""
    sh % "hg log -T '{rev} {desc}\\n' -r 'age(\"<1h4m\")'" == r"""
        3 Changeset 3800 seconds ago
        4 Changeset 420 seconds ago
        5 Changeset 5 seconds ago"""
    sh % "hg log -T '{rev} {desc}\\n' -r 'age(\"<1d\")'" == r"""
        2 Changeset 86369 seconds ago
        3 Changeset 3800 seconds ago
        4 Changeset 420 seconds ago
Esempio n. 8
0
def setbookmarks(name):
    """Set bookmarks to specified commit"""
    sh.hg("bookmark", "book", "-r", "desc(%s)" % name)
    sh.hg("debugremotebookmark", "remotebook", "desc(%s)" % name)
Esempio n. 9
0
)
sh.newrepo()
sh.enable("remotenames", "amend")

(
    sh % "hg debugdrawdag"
    << r"""
C
|
B
|
A
"""
)

sh.hg("update", "desc(A)")
sh.hg("bookmark", "foo")
sh.hg("update", "desc(C)")
sh.hg("bookmark", "foo")

(
    sh % "hg debugdrawdag"
    << r"""
E
|
D
|
desc(B)
"""
)
Esempio n. 10
0
def getidtopath():
    """Return a dict mapping from id (in hex form) to path"""
    output = sh.hg("debugmanifestdirs", "-rall()")
    # debugmanifestdirs prints "<id> <path>" per line
    result = dict(l.split() for l in output.splitlines())
    return result
Esempio n. 11
0
def mkcommit(name):
    open(name, "wb").write("%s\n" % name)
    sh.hg("ci", "-m", "add %s" % name, "-A", name)