Mon Nov 14 21:48:48 PST 2005  Brendan Cully <[EMAIL PROTECTED]>
  * Pick up tags from mercurial sources
  
  Tailor appears to only be able to tag the current revision, so this patch
  silently drops any retroactive tags. It might be worth expanding the tag
  object with the notion of author, tag date and files tagged (the first two
  are readily available but not passed on in _tag()).

Mon Nov 14 23:07:47 PST 2005  Brendan Cully <[EMAIL PROTECTED]>
  * Fix mercurial source deletion detection
  
  The original mercurial delete logic would find any unchanged file in a
  changeset to be deleted. This horrible bug was mitigated by the fact that
  I had forgotten to actually add DELETED changeset entries to the changeset.
New patches:

[Pick up tags from mercurial sources
Brendan Cully <[EMAIL PROTECTED]>**20051115054848
 
 Tailor appears to only be able to tag the current revision, so this patch
 silently drops any retroactive tags. It might be worth expanding the tag
 object with the notion of author, tag date and files tagged (the first two
 are readily available but not passed on in _tag()).
] {
hunk ./vcpx/hglib.py 73
+        parents = repo.changelog.parents(node)
hunk ./vcpx/hglib.py 75
+
+        # Different targets seem to handle the TZ differently. It looks like
+        # darcs may be the most correct.
+        (dt, tz) = date.split(' ')
+        date = datetime.fromtimestamp(int(dt) + int(tz))
+
hunk ./vcpx/hglib.py 89
-        # Different targets seem to handle the TZ differently. It looks like
-        # darcs may be the most correct.
-        (dt, tz) = date.split(' ')
-        date = datetime.fromtimestamp(int(dt) + int(tz))
+        # if files contains only '.hgtags', this is probably a tag cset.
+        # Tailor appears to only support tagging the current version, so only
+        # pass on tags that are for the immediate parents of the current node
+        tags = None
+        if files == ['.hgtags']:
+            tags = [tag for (tag, tagnode) in repo.tags().iteritems()
+                    if tagnode in parents]
+            # Since this is a tag, the parent manifest contains everything.
+            # The only question is whether or not .hgtags existed before
+            if pms.has_key('.hgtags'):
+                pms = {'.hgtags': pms['.hgtags']}
+            else:
+                pms = {}
hunk ./vcpx/hglib.py 129
-        return Changeset(revision, date, user, message, entries)
+        return Changeset(revision, date, user, message, entries, tags=tags)
}

[Fix mercurial source deletion detection
Brendan Cully <[EMAIL PROTECTED]>**20051115070747
 
 The original mercurial delete logic would find any unchanged file in a
 changeset to be deleted. This horrible bug was mitigated by the fact that
 I had forgotten to actually add DELETED changeset entries to the changeset.
] {
hunk ./vcpx/hglib.py 103
-        # Every time we find a file in the current manifest, we pop it from the parents.
-        # Anything left over in parents is a deleted file.
hunk ./vcpx/hglib.py 113
-                try:
-                    del pms[f]
+                if pms.has_key(f):
hunk ./vcpx/hglib.py 115
-                except KeyError:
+                else:
hunk ./vcpx/hglib.py 120
-        for df in pms.iterkeys():
+        for df in [file for file in pms.iterkeys() if not manifest.has_key(file)]:
hunk ./vcpx/hglib.py 123
+            entries.append(e)
}

Context:

[Fix bzr incremental update
Brendan Cully <[EMAIL PROTECTED]>**20051114060007
 
 Incremental update in bzr isn't working: when tailor restarts it has no
 handle on the bzr branch object, and when it does a merge it doesn't
 make sure that it already has the changesets it needs. This patch
 introduces a getRepo method that gets a branch handle if there isn't one,
 and calls bzrlib.fetch.greedy_fetch to pull in all changesets before
 attempting to merge them.
] 
[Fix a last-second BPB converting revision names.
Brendan Cully <[EMAIL PROTECTED]>**20051114030337] 
[Mercurial source support via hglib
Brendan Cully <[EMAIL PROTECTED]>**20051114022602] 
[git commit fixes (date, # at end of commit message)
Brendan Cully <[EMAIL PROTECTED]>**20051114022122
 
 As of at least git 0.99.9e, git refuses to parse timestamps with
 microseconds such as str(datetime) may emit. This patch uses strftime
 to force the format to something simpler.
 
 It also manually duplicates GIT_AUTHOR_* to GIT_COMMITTER_* so that
 cg-log produces output most similar to the source log.
 
 git-commit expects the commit message to end with a newline, so this
 patch adds one if it isn't already there.
] 
[Ensure str() doesn't get handed a unicode changeset
Brendan Cully <[EMAIL PROTECTED]>**20051114021851
 
 I don't do a lot of python, so I may be misdiagnosing this bug, but I
 get a UnicodeEncodeError at Tailorizer.applyable on the debug line
 when tailorizing a source with non-ascii log messages on a UTF-8
 terminal. It appears that str() expects a __str__ function it calls to
 return a plain (not unicode) string. Could possibly be an OS X issue.
 
 The particular test was tailorizing the bzr repository from bzr to git
 or hglib, with changeset messages apparently in macroman, on a UTF-8
 terminal. This problem is made more annoying by the fact that bzr no
 longer seems to be able to resume (_b undefined in the upgrade path).
] 
[Ignore the backup copy of the state file
[EMAIL PROTECTED] 
[Fix cut&paste error
[EMAIL PROTECTED] 
[TAG Version 0.9.19 (retag)
[EMAIL PROTECTED] 
Patch bundle hash:
f1810fd6aff9ce33eaf7642e4345ed5b836ab4cc
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor

Reply via email to