summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-07-21 11:34:23 +0000
committerZac Medico <zmedico@gentoo.org>2007-07-21 11:34:23 +0000
commit6e3a6a8b9cb8477afb12497b43f8f58c06a90128 (patch)
tree99534d9b21720c5560715bc875fd16069a7caed4 /bin
parentFor bug #185153, in commit mode do the "Fetching trivial updates" routine bef... (diff)
downloadportage-idfetch-6e3a6a8b9cb8477afb12497b43f8f58c06a90128.tar.gz
portage-idfetch-6e3a6a8b9cb8477afb12497b43f8f58c06a90128.tar.bz2
portage-idfetch-6e3a6a8b9cb8477afb12497b43f8f58c06a90128.zip
For bug #169500, detect when the cvs server puts /Attic/ inside the $Header path and automatically correct it.
svn path=/main/trunk/; revision=7340
Diffstat (limited to 'bin')
-rwxr-xr-xbin/repoman17
1 files changed, 17 insertions, 0 deletions
diff --git a/bin/repoman b/bin/repoman
index 6a617191..b995c470 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -1792,6 +1792,23 @@ else:
else:
raise portage.exception.PortageException("!!! gpg exited with '" + str(rValue) + "' status")
+ # When files are removed and re-added, the cvs server will put /Attic/
+ # inside the $Header path. This code detects the problem and corrects it
+ # so that the Manifest will generate correctly. See bug #169500.
+ from portage.util import write_atomic
+ cvs_header = re.compile(r'^#\s*\$Header.*\$$')
+ for x in myheaders:
+ f = open(x)
+ mylines = f.readlines()
+ f.close()
+ modified = False
+ for i, line in enumerate(mylines):
+ if cvs_header.match(line) and "/Attic/" in line:
+ mylines[i] = line.replace("/Attic/", "/")
+ modified = True
+ if modified:
+ write_atomic(x, "".join(mylines))
+
manifest_commit_required = True
if myheaders or myupdates or myremoved or mynew:
myfiles=myheaders+myupdates+myremoved+mynew