From: Fredrik Kuivinen Date: Wed, 09 Nov 2005 10:42:57 GMT Subject: [PATCH] merge-recursive: Fix support for branch names containing slashes Message-ID: <20051109104257.GC4960@c165.ib.student.liu.se> In-Reply-To: <20051109081906.GA4960@c165.ib.student.liu.se> On Wed, Nov 09, 2005 at 09:19:06AM +0100, Fredrik Kuivinen wrote: > On Tue, Nov 08, 2005 at 09:50:54PM -0800, Junio C Hamano wrote: > > Fredrik Kuivinen writes: > > > > >> Oops, I missed that part. This is unsafe in theory, if you > > >> could overwrite existing file3_master or file3_dev. Does that > > >> matter in practice? > > > > > > It wont overwrite any existing files. If there is a file named > > > 'file3_master' then the new file will be named 'file3_master_1' and if > > > that file also exists the new file will be named 'file3_master_2', and > > > so on. > > > > Another thing to watch out is that a branch name could have a > > slash in it. It might make more sense to just name the heads file3~2 > > or file3~3 (with as many ~s repeated to avoid name clashes) like > > Pasky does. > > > > Oups, I haven't thought about that. I kind of like the idea that you > can see the branch name in the file names though. How about replacing > any slashes in the branch names with underscores? So the branch > 'foo/bar' will give rise to files with suffixes like '_foo_bar' and > '_foo_bar_'. > And here is a patch to implement this. Should apply cleanly on top of '[PATCH] merge-recursive: Fix limited output of rename messages'. --- Signed-off-by: Fredrik Kuivinen --- git-merge-recursive.py | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) applies-to: 1dd8c1800d7dd0425bc93f4c9441acfb207b1488 795e2900e8804af53263821c177a270cd2d7c2c0 diff --git a/git-merge-recursive.py b/git-merge-recursive.py index 3657875..90e889c 100755 --- a/git-merge-recursive.py +++ b/git-merge-recursive.py @@ -295,6 +295,7 @@ def uniquePath(path, branch): else: raise + branch = branch.replace('/', '_') newPath = path + '_' + branch suffix = 0 while newPath in currentFileSet or \ --- 0.99.9.GIT