Merge from http://moffetthome.net:8012/
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Merge from http://moffetthome.net:8012/
manifest hash:
3a67864af6b0276eabe640274633ca2625dbd4a5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCvQKkywK+sNU5EO8RArUHAKCSGtpEfJwYGoAIpj4mBDvcPted9wCgnzML
xr8WQ8DdPkJ9DVsLjvsbhJU=
=O7Fd
-----END PGP SIGNATURE-----
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/mercurial.spec Fri Jun 24 23:07:16 2005 -0800
@@ -0,0 +1,48 @@
+Summary: Mercurial -- a distributed SCM
+Name: mercurial
+Version: 0.6
+Release: 1
+Copyright: GPL
+Group: Development/Tools
+Distribution: RedHat
+Source: http://www.selenic.com/mercurial/release/%{name}-%{version}.tar.gz
+Packager: Arun Sharma <arun@sharma-home.net>
+Prefix: /usr
+BuildRoot: /tmp/build.%{name}-%{version}-%{release}
+
+%description
+
+Mercurial is a fast, lightweight source control management system designed
+for efficient handling of very large distributed projects.
+
+%prep
+
+rm -rf $RPM_BUILD_ROOT
+
+%setup -q -n %{name}-%{version}
+
+%build
+
+python setup.py build
+
+%install
+
+python setup.py install --root $RPM_BUILD_ROOT
+
+cd $RPM_BUILD_ROOT
+find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > \
+ $RPM_BUILD_DIR/file.list.%{name}
+
+find . -type f | sed -e 's,^\.,\%attr(-\,root\,root) ,' \
+ -e '/\/config\//s|^|%config|' \
+ -e '/\/applnk\//s|^|%config|' >> \
+ $RPM_BUILD_DIR/file.list.%{name}
+
+find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> \
+ $RPM_BUILD_DIR/file.list.%{name}
+
+%clean
+rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR/file.list.%{name}
+
+%files -f ../file.list.%{name}
+%doc doc
--- a/mercurial/commands.py Fri Jun 24 20:53:51 2005 -0500
+++ b/mercurial/commands.py Fri Jun 24 23:07:16 2005 -0800
@@ -275,6 +275,43 @@
"""mark a file as copied or renamed for the next commit"""
return repo.copy(*relpath(repo, (source, dest)))
+def debugcheckdirstate(ui, repo):
+ parent1, parent2 = repo.dirstate.parents()
+ dc = repo.dirstate.dup()
+ keys = dc.keys()
+ keys.sort()
+ m1n = repo.changelog.read(parent1)[0]
+ m2n = repo.changelog.read(parent2)[0]
+ m1 = repo.manifest.read(m1n)
+ m2 = repo.manifest.read(m2n)
+ errors = 0
+ for f in dc:
+ state = repo.dirstate.state(f)
+ if state in "nr" and f not in m1:
+ print "%s in state %s, but not listed in manifest1" % (f, state)
+ errors += 1
+ if state in "a" and f in m1:
+ print "%s in state %s, but also listed in manifest1" % (f, state)
+ errors += 1
+ if state in "m" and f not in m1 and f not in m2:
+ print "%s in state %s, but not listed in either manifest" % (f, state)
+ errors += 1
+ for f in m1:
+ state = repo.dirstate.state(f)
+ if state not in "nrm":
+ print "%s in manifest1, but listed as state %s" % (f, state)
+ errors += 1
+ if errors:
+ print ".hg/dirstate inconsistent with current parent's manifest, aborting"
+ sys.exit(1)
+
+def debugdumpdirstate(ui, repo):
+ dc = repo.dirstate.dup()
+ keys = dc.keys()
+ keys.sort()
+ for file in keys:
+ print "%s => %c" % (file, dc[file][0])
+
def debugindex(ui, file):
r = hg.revlog(hg.opener(""), file, "")
print " rev offset length base linkrev"+\
@@ -376,7 +413,6 @@
d = opts["base"]
strip = opts["strip"]
- quiet = ui.quiet and "> /dev/null" or ""
for patch in patches:
ui.status("applying %s\n" % patch)
@@ -677,6 +713,8 @@
('u', 'user', "", 'user')],
'hg commit [files]'),
"copy": (copy, [], 'hg copy <source> <dest>'),
+ "debugcheckdirstate": (debugcheckdirstate, [], 'debugcheckdirstate'),
+ "debugdumpdirstate": (debugdumpdirstate, [], 'debugdumpdirstate'),
"debugindex": (debugindex, [], 'debugindex <file>'),
"debugindexdot": (debugindexdot, [], 'debugindexdot <file>'),
"diff": (diff, [('r', 'rev', [], 'revision')],
--- a/mercurial/util.py Fri Jun 24 20:53:51 2005 -0500
+++ b/mercurial/util.py Fri Jun 24 23:07:16 2005 -0800
@@ -16,6 +16,8 @@
# Platfor specific varients
if os.name == 'nt':
+ nulldev = 'NUL:'
+
def is_exec(f, last):
return last
@@ -32,7 +34,10 @@
def readlock(pathname):
return file(pathname).read()
+
else:
+ nulldev = '/dev/null'
+
def is_exec(f, last):
return (os.stat(f).st_mode & 0100 != 0)
@@ -57,5 +62,3 @@
def readlock(pathname):
return os.readlink(pathname)
-
-
--- a/mercurial/version.py Fri Jun 24 20:53:51 2005 -0500
+++ b/mercurial/version.py Fri Jun 24 23:07:16 2005 -0800
@@ -13,6 +13,7 @@
import os.path
import re
import time
+import util
unknown_version = 'unknown'
remembered_version = False
@@ -37,7 +38,7 @@
"""Store version information."""
global remembered_version
if not version and os.path.isdir(".hg"):
- f = os.popen("hg identify 2>/dev/null") # use real hg installation
+ f = os.popen("hg identify 2> %s" % util.nulldev) # use real hg installation
ident = f.read()[:-1]
if not f.close() and ident:
ids = ident.split(' ', 1)
--- a/tests/test-copy Fri Jun 24 20:53:51 2005 -0500
+++ b/tests/test-copy Fri Jun 24 23:07:16 2005 -0800
@@ -13,6 +13,8 @@
hg history
hg log a
hexdump -C .hg/data/b.d
-hg cat b | md5sum
-hg cat a | md5sum
+hg cat b > bsum
+md5sum bsum
+hg cat a > asum
+md5sum asum
hg verify
--- a/tests/test-copy.out Fri Jun 24 20:53:51 2005 -0500
+++ b/tests/test-copy.out Fri Jun 24 23:07:16 2005 -0800
@@ -39,11 +39,11 @@
00000040 0a |.|
00000041
+ hg cat b
-+ md5sum
-60b725f10c9c85c70d97880dfe8191b3 -
++ md5sum bsum
+60b725f10c9c85c70d97880dfe8191b3 bsum
+ hg cat a
-+ md5sum
-60b725f10c9c85c70d97880dfe8191b3 -
++ md5sum asum
+60b725f10c9c85c70d97880dfe8191b3 asum
+ hg verify
checking changesets
checking manifests