Mercurial > hgsubversion
comparison rebuildmeta.py @ 215:b5ef9a404f5d
Stopped idiotic filtering of revisions that did not edit something branches/tags/trunk.
Fixed a bunch of tests as a result. This likely will make new conversions of some repos have new revisions in them.
| author | Augie Fackler <durin42@gmail.com> |
|---|---|
| date | Fri, 27 Mar 2009 16:56:07 -0500 |
| parents | 30df375590d1 |
| children | a360ddc97719 |
comparison
equal
deleted
inserted
replaced
| 214:1416429584b2 | 215:b5ef9a404f5d |
|---|---|
| 83 lastrevfile.write(str(last_rev)) | 83 lastrevfile.write(str(last_rev)) |
| 84 lastrevfile.close() | 84 lastrevfile.close() |
| 85 branchinfofile = open(os.path.join(svnmetadir, 'branch_info'), 'w') | 85 branchinfofile = open(os.path.join(svnmetadir, 'branch_info'), 'w') |
| 86 pickle.dump(branchinfo, branchinfofile) | 86 pickle.dump(branchinfo, branchinfofile) |
| 87 branchinfofile.close() | 87 branchinfofile.close() |
| 88 | |
| 89 # now handle tags | |
| 88 tagsinfo = {} | 90 tagsinfo = {} |
| 89 realtags = svn.tags | 91 realtags = svn.tags |
| 90 tagsleft = realtags.items() | 92 tagsleft = realtags.items() |
| 91 while tagsleft: | 93 while tagsleft: |
| 92 tag, tagparent = tagsleft.pop(0) | 94 tag, tagparent = tagsleft.pop(0) |
| 101 tagsleft.append(src) | 103 tagsleft.append(src) |
| 102 else: | 104 else: |
| 103 older_tags = svn.tags_at_rev(rev) | 105 older_tags = svn.tags_at_rev(rev) |
| 104 newsrc, newrev = older_tags[src] | 106 newsrc, newrev = older_tags[src] |
| 105 tagsleft.append((tag, (newsrc, newrev))) | 107 tagsleft.append((tag, (newsrc, newrev))) |
| 106 if source.startswith('branches/') or source == 'trunk': | 108 continue |
| 109 else: | |
| 107 source = determinebranch(source) | 110 source = determinebranch(source) |
| 108 if rev <= last_rev: | 111 if rev <= last_rev: |
| 109 tagsinfo[tag] = source, rev | 112 tagsinfo[tag] = source, rev |
| 110 tagsinfofile = open(os.path.join(svnmetadir, 'tag_info'), 'w') | 113 tagsinfofile = open(os.path.join(svnmetadir, 'tag_info'), 'w') |
| 111 pickle.dump(tagsinfo, tagsinfofile) | 114 pickle.dump(tagsinfo, tagsinfofile) |
| 112 tagsinfofile.close() | 115 tagsinfofile.close() |
| 113 rebuildmeta = util.register_subcommand('rebuildmeta')(rebuildmeta) | 116 rebuildmeta = util.register_subcommand('rebuildmeta')(rebuildmeta) |
| 114 rebuildmeta = util.command_needs_no_url(rebuildmeta) | 117 rebuildmeta = util.command_needs_no_url(rebuildmeta) |
| 115 | 118 |
| 116 def determinebranch(branch): | 119 def determinebranch(branch): |
| 117 if branch.startswith('branches'): | 120 assert not branch.startswith('tags/'), "Tags can't be tags of other tags." |
| 121 if branch.startswith('branches/'): | |
| 118 branch = branch[len('branches/'):] | 122 branch = branch[len('branches/'):] |
| 119 elif branch == 'trunk': | 123 elif branch == 'trunk': |
| 120 branch = None | 124 branch = None |
| 121 else: | 125 else: |
| 122 assert False, 'Unhandled case while regenerating metadata.' | 126 branch = '../' + branch |
| 123 return branch | 127 return branch |
