Hey, I'm using Tailor to convert a pretty hefty CVS repository to Mercurial,
and I ran into a major issue when I upgraded to Mercurial 1.1.  Basically, I
can't convert any changesets where a file is deleted because the _walk
method in hg.py throws an exception.  I found a patch that appears to fix
this problem at https://bugzilla.redhat.com/show_bug.cgi?id=478841 (named
"reverted patch" by Dan HorĂ¡k) that I wanted to make sure you're aware of,
since I still get the error after pulling the latest Tailor from the darcs
repository.  If it helps, I've attached the darcs send output of that patch
(the actual command doesn't for me for some reason).  If you need any more
info, let me know.

Thanks for the great tool!

Chad Burrus
New patches:

[Mercurial 1.1 deletes
[email protected]**20090325225714
 Patches tailor to allow Mercurial 1.1 to delete files
 
 Patch originally from https://bugzilla.redhat.com/show_bug.cgi?id=478841 named "reverted patch" by Dan Horak, 2009-01-07 12:32 EDT
] {
hunk ./vcpx/repository/hg.py 16
-from mercurial import ui, hg, cmdutil, commands
+from mercurial import ui, hg, cmdutil, commands, match
hunk ./vcpx/repository/hg.py 642
-
+        m = match.exact(self.repository.basedir,
+                        self.repository.basedir,
+                        [subdir])
hunk ./vcpx/repository/hg.py 646
-        for src, path in self._getRepo().dirstate.walk([subdir]):
+        for path in self._getRepo().dirstate.walk(m, unknown=True, ignored=False):
+
}

Context:

[Don't fail removing a non existing entry, emit a warning instead
[email protected]**20090317132420
 Ignore-this: 39e1c7ed640c836b7cd1b2bc37883970
] 
[Little fixes to git target
[email protected]**20090312164849
 Ignore-this: bfbd0af22dfd6888299824f5a0e26742
 Thanks to Youness Alaoui (KaKaRoTo)
] 
[Remove darcs 2.1+ "Ignore-this: ..." noise from the changelog
[email protected]**20090205134048
 Ignore-this: e3f08f5e953bad67f210cee9c47bc2bb
] 
[Maintaining mercurial compatibility is a daily effort
[email protected]**20090116151025
 Ignore-this: 89aad018f1db91598ce238a01cc31bb4
] 
[Fix git environment variables usage
Bruce Guenter <[email protected]>**20090108102740
 Ignore-this: e4044aaa2246e339036c3e86a0bafead
] 
[Fix #172, mercurial 1.1 compatibility
[email protected]**20090107170956
 Ignore-this: a7f933265c668dce93e071d8dbda3290
 See also https://bugzilla.redhat.com/show_bug.cgi?id=477148
] 
[darcs target, if darcs record fails, try a repair
Henrik Hjelte <[email protected]>**20081205081027
 Ignore-this: e7fab284af3c431d751e871bf8416b88
 Solve a problem with the config.tailor attached to http://bugs.darcs.net/issue693
] 
[git source remove try-except for a thing we can check for
Henrik Hjelte <[email protected]>**20081205075458
 Ignore-this: eae7c82b09c5c308b1acf42618496d33
 The try-except clause seems (from the comment) to be there
 in case there is 'no tag dir', but we can detect this 
 with os.path.exists and instead remove the try-except.
] 
[Write to `pending.tentative` when using darcs v2
[email protected]**20080914150523] 
[When importing, we may want to host changes in a multi-level subdirectory
[email protected]**20080827093624
 But to be able to do so, "svn mkdir" should have "--parent" option
] 
[fix rev['notes'] being empty stacktrace
[email protected]**20080806150041
 
 Fix "IndexError: list index out of range" because there was no 'notes' in the filelog
] 
[Support git target renames within already-renamed directories
[email protected]**20080717213137] 
[Clear git target renaming error messages
[email protected]**20080717213040] 
[Support git target renaming of empty directories in disjunct operation
[email protected]**20080717212932] 
[tailor_git_target_disjunct_rename
[email protected]**20080717212720
 Add a case into the git target _renamePathname() method for disjunct
 directory operation.  In this situation, the caller expects us to
 perform the move from the old name to the new name via git, after
 which it will replace the renamed file or directory with its true
 contents from the source commit.
   
 XXX Note: I am not 100% certain whether this works for directories
 that have been renamed and also have files added to them in the same
 commit.
] 
[The `FakeLogger` needs to implement debug() too
[email protected]**20080717211053] 
[Substitute REPLACED with RENAMED when it is the case
[email protected]**20080717210614
 This is not enough and there are still problems with the REPLACED kind
 of entries: when it's a directory that gets replaced, tailor should go
 down the slipping route of adding REMOVEs for entries that were
 effectively deleted...
] 
[Split the entries one per line
[email protected]**20080717205719] 
[Set `is_directory=True` when it is the case
[email protected]**20080625144444] 
[Sync with same P4 depot_path with which got the change list
[email protected]**20080625141744] 
[Clean up the code
[email protected]**20080620130517
  * normalize whitespace around `==`
  * factorized `fname[1:-1]`
  * clarified some comments
  * use `for:else:` (thx LotR!)
] 
[Removed useless condition
[email protected]**20080620093150
 Why does the monotone backend need to always commit everything instead
 of the exact changes?
] 
[Use `variable is None` and not `variable == None`
[email protected]**20080620093002] 
[Handle monotone timestamps with microseconds
[email protected]**20080620092712] 
[Fix Debian BTS 486604
[email protected]**20080617083124
 Raise an error when using the same kind of VCS and same subdir.
] 
[Minor optimization
[email protected]**20080611181416] 
[Rename the pending file on darcs record failures
[email protected]**20080611181237] 
[Move common import stmt at top level
[email protected]**20080611181112] 
[Be backward compatible with existing statefiles
[email protected]**20080611172924
 Using class attributes to initialize the default values is the right way
 of extending the `ChangesetEntry`, without the risk of triggering
 `AttributeError` on ''old'' instances loaded from a statefile built with
 a previous version of tailor.
] 
[Removed wrong tests for #64
[email protected]**20080610221331
 The reason of the failure must be searched in the source backend, CVS
 in this case: it should infer the added directory.
] 
[Use the `.is_directory` slot introduced by `ChangesetEntry`
[email protected]**20080610221003] 
[Move additional entry info after the name
[email protected]**20080610220907] 
[Postpone the execution of `darcs --version`
[email protected]**20080610212549] 
[[aegis] skip symlinks entries
<[email protected]>**20080609063535
 
 Aegis does not handle symlinks as source files.
] 
[[aegis] config file creation improved
<[email protected]>**20080609063219
 
 Adds a config file if at commit time it's not yet present in the target
 repository. 
] 
[identify symlinks entries
<[email protected]>**20080609062919
 
 This changeset adds the ChangesetEntry.is_symlink flag (default to False).
] 
[[bzr] compatibility with python < 2.5
Walter Franzini <[email protected]>**20080609054041
 
 The code in the bzr backend contained a usage of the yield statement
 forbidden before python 2.5 (inside the try part of a try:finally:).
 This change-set is a workaround.
] 
[[aegis] adapt the changeset even if the target repository is empty
<[email protected]>**20080606133245
 
 Adapt the changeset even if the target repository is empty since some
 thing has to be done:
 
 * remove directory
 * remove deletion of files not in the repository
 * adapt renames
] 
[print is_directory flag
<[email protected]>**20080606132740] 
[Stderr is needed to recognize when darcs 2 is missing `pull --xml-output`
[email protected]**20080610075658] 
[Put file deletion before parent directory deletion
[email protected]**20080605000200] 
[Use rsync --delete when the target is darcs
[email protected]**20080605000015
 The darcs target backend now writes directly to the pending file to
 assemble new patches, and thus it assumes the source already applied
 all the changes, in particular removed deleted files.
] 
[Don't use single uppercase letter for variables
[email protected]**20080604235634] 
[Loop over a copy of the list, since we are going to remove items
[email protected]**20080604164502] 
[Always set the `.arch-ids` as an `EXTRA_METADIRS` under tla
[email protected]**20080604121824] 
[Revise logged information
[email protected]**20080604121556
 Show the author and the timestamp of the upstream changeset, and strip
 the trailing waitspace from the changelog.
] 
[Show the actual exception, it may contain the error message from the backend
[email protected]**20080604112748] 
[Don't perform the post-commit-check if using `look-for-adds=True` with darcs
[email protected]**20080604111601] 
[Fix the usage of the debug option value
[email protected]**20080604110017] 
[Recognize hg directory renames
[email protected]**20080604103046] 
[Reduce hg verbosity
[email protected]**20080604102915
 Use --quiet when `debug=False`.
] 
[Handle "split-file" under hg
[email protected]**20080604010156] 
[Workaround to what seems hg merge strangeness
[email protected]**20080604002836
 Trying to convert hg own history to darcs, tailor found several kinds
 of strange patches, that is changesets that brings in entries not
 shown in the patch log, or tagged as updates when the entry does not
 still exist, or deleted twice in different patches.
 This patch tries to fix the last two problems. My only workaround to
 the first, until I find a better way if any, is to use
 `looks-for-adds=True` on darcs.
] 
[Show the actual changeset that triggers the error
[email protected]**20080604002240] 
[Add --ignore-times on darcs record
[email protected]**20080604002206] 
[Fix #81: handle directories add/remove under hg
[email protected]**20080603162422] 
[Removed useless import
[email protected]**20080603162049] 
[Fix typo
[email protected]**20080603154832] 
[Fix #66: Use `_hgCommand()` to copy/remove items
[email protected]**20080602173305
 `repo.copy(source, target)` errors out with a quite surprising
 "target does not exist" message.
] 
[Implement the `_postCommitCheck()` method for hg
[email protected]**20080602163243] 
[Make post-commit-check True by default
[email protected]**20080602163222] 
[Ignore stderr when fetching darcs XML output
[email protected]**20080602153509] 
[Document the 'overwrite-tags' for git
[email protected]**20080602144559
 Also, emit a critical log indicating the possible source of the
 problem, mentioning the option.
] 
[TAG Version 0.9.35
[email protected]**20080602121233] 
Patch bundle hash:
c124e0426faf5c130850e98a789f286faaf096ec
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor

Reply via email to