1. Augie Fackler
  2. hgsubversion
  3. Issues
Issue #336 new

Not handling path deletion

Dmitry Zanozin
created an issue

The sequence of (accidentally made) commits in svn repo were: {{{ Revision: 15604 - Added : /branches/stable_2 (Copy from path: /trunk/lib) ; Revision: 15605 - Deleted : /branches/stable_2 }}}

We didn't need files from /trunk/lib in the root of the branch, so we had deleted the whole directory. After that (in the following commits) we have repeated the creation of a new branch in a right way.

But after conversion to hg all data, copied from /trunk/lib is still in the root and I don't see any changeset with deletion of any file.

Comments (5)

  1. Dmitry Zanozin reporter

    I've created a test repo here: http://code.google.com/p/svn-hg-test/source/list

    As you see there is a creation of branch1 in Rev3 with the following deletion in Rev4.

    Rev5 contains another creation of branch1 followed by Rev6 with new branch1 content

    after

    hg clone http://svn-hg-test.googlecode.com/svn
    

    we receive the wrong hg repo (see attached graph) because changeset related to Rev5 is a child of changeset of Rev3 without any changeset containing the removal of content of Rev3.

    As a result we receive the content of the first and the second commit together on updating to branch1.

  2. Dmitry Zanozin reporter

    I suggest to cut the relationship between the new changeset which follows branch closing and previous changesets on that branch. In current example we need to set parent of cs 3 in hg graph to NULL (not to cs 1 as it appears now). We receive disconnected graph and that is the right interpretation of branch deletion in svn.

  3. Log in to comment