#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

Reply via email to