#83: Tailor fails with successive tree renames in single patch
---------------------+------------------------------------------------------
Reporter: ydirson | Owner: lele
Type: defect | Status: new
Priority: major | Milestone: VersionOne
Component: tailor | Version: 0.9
Keywords: |
---------------------+------------------------------------------------------
When converting http://ydirson.free.fr/soft/graph-includes/darcs/ from
darcs to git, the conversion fails on a changeset with the following
entries:
Entries: lib/DEPS/Styler/Node/PerGroup.pm(REN from
lib/DEPS/Styler/Node/Group.pm), lib/DEPS/Style(REN from lib/DEPS/Styler),
NEWS(UPD), graph-includes(UPD), lib/DEPS/Style/Node/PerGroup.pm(UPD)
The failure occurs in git.target after requesting that it records the
parent dirs for the 1st rename. However, those dirs are already
invalidated since darcs.source already applied the 2nd rename.
But the failure really occurs because when filtering out directories from
the list of pathnames to add, we do not (and can not really) filter out
non-existent dirs.
Some possible fixes:
- filter out non-existent entries as well from _addPathnames (git-only
fix)
- internally compose renames before calling replay (more generic, more
difficult) (maybe darcs.source specific)
This is not unlike the add+remove case already handled. There is also a
risk of discovering other such unexpected combinations in the future - not
sure how we could deal with that. The common issue seems to be that the
destination pathnames of some entries are really not present in the
resulting tree. We could add a check for this situation, try to fix
things, and fail with a useful message if we could not.
--
Ticket URL: <http://progetti.arstecnica.it/tailor/ticket/83>
Tailor <http://progetti.arstecnica.it/tailor>
An inter-VCs changeset exchanger
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor