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
