Re: [PATCH 5/5] git-svn: fix empty dir tracking in branches
From: Eric Sunshine <hidden>
Date: 2016-06-15 22:57:05
On Tue, Apr 30, 2013 at 1:38 PM, Ilya Basin [off-list ref] wrote:
- When creating a tag or branch from a subdir, a disjoint branch is
created. Then git-svn re-imports the commits using this dir as strip
path.
During this re-import the variable %added_placeholder is not up to
date. Because the branch is disjoint, this variable should be empty
in the beginning, but it's not. Because of that git-svn tries to
delete non-existent .gitignore files and dies.
- When creating a tag or branch from a subdir, the strip path is e.g.
"trunk/module", but change_dir_prop() can be called with just
"trunk". This breaks tracking of placeholder files, because it
relise on the hash {dir_prop}, filled in change_dir_prop().s/relise/relies/
- When creating a normal tag or branch, git-svn creates a normal
branch without reimport, but the placeholder files in the new
branch are not added to %added_placeholder.
This patch does 3 things:
- It makes git-svn store paths in %added_placeholder already
translated from "trunk/subdir/" to "tags/subdir_1.0/" during
reimport.
- When strip path is "trunk/subdir", don't add "trunk" to {dir_prop}
in change_dir_prop().
- When a normal branch is created, it takes entries in
%added_placeholder belonging to the source branch, translates them
to target branch and adds them to %added_placeholder.