From: Eric Sunshine Date: Wed, 01 May 2013 03:25:02 GMT Subject: Re: [PATCH 5/5] git-svn: fix empty dir tracking in branches Message-ID: In-Reply-To: <51800471.6905700a.65c8.00b9@mx.google.com> On Tue, Apr 30, 2013 at 1:38 PM, Ilya Basin 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.