D1550: remotenames: add functions to read remotenames data from .hg/remotenames/
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Tue Dec 5 22:23:07 UTC 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG744d1c874a59: remotenames: add functions to read remotenames data from .hg/remotenames/ (authored by pulkit, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D1550?vs=3977&id=4141
REVISION DETAIL
https://phab.mercurial-scm.org/D1550
AFFECTED FILES
mercurial/remotenames.py
CHANGE DETAILS
diff --git a/mercurial/remotenames.py b/mercurial/remotenames.py
--- a/mercurial/remotenames.py
+++ b/mercurial/remotenames.py
@@ -17,6 +17,46 @@
# directory name in .hg/ in which remotenames files will be present
remotenamedir = 'remotenames'
+def readremotenamefile(repo, filename):
+ """
+ reads a file from .hg/remotenames/ directory and yields it's content
+ filename: the file to be read
+ yield a tuple (node, remotepath, name)
+ """
+
+ vfs = vfsmod.vfs(repo.vfs.join(remotenamedir))
+ if not vfs.exists(filename):
+ return
+ f = vfs(filename)
+ lineno = 0
+ for line in f:
+ line = line.strip()
+ if not line:
+ continue
+ # contains the version number
+ if lineno == 0:
+ lineno += 1
+ try:
+ node, remote, rname = line.split('\0')
+ yield node, remote, rname
+ except ValueError:
+ pass
+
+ f.close()
+
+def readremotenames(repo):
+ """
+ read the details about the remotenames stored in .hg/remotenames/ and
+ yields a tuple (node, remotepath, name). It does not yields information
+ about whether an entry yielded is branch or bookmark. To get that
+ information, call the respective functions.
+ """
+
+ for bmentry in readremotenamefile(repo, 'bookmarks'):
+ yield bmentry
+ for branchentry in readremotenamefile(repo, 'branches'):
+ yield branchentry
+
def writeremotenamefile(repo, remotepath, names, nametype):
vfs = vfsmod.vfs(repo.vfs.join(remotenamedir))
f = vfs(nametype, 'w', atomictemp=True)
To: pulkit, #hg-reviewers, durin42
Cc: dlax, mercurial-devel
More information about the Mercurial-devel
mailing list