-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
git svn: attempt to create empty dirs on clone+rebase
We parse unhandled.log files for empty_dir statements and make a best effort attempt to recreate empty directories on fresh clones and rebase. This should cover the majority of cases where users work off a single branch or for projects where branches do not differ in empty directories. Since this cannot affect "normal" git commands like "checkout" or "reset", so users switching between branches in a single working directory should use the new "git svn mkdirs" command after switching branches. Signed-off-by: Eric Wong <normalperson@yhbt.net>
- Loading branch information
Eric Wong
committed
Nov 16, 2009
1 parent
e2f8617
commit 6111b93
Showing
4 changed files
with
139 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2009 Eric Wong | ||
|
||
test_description='git svn creates empty directories' | ||
. ./lib-git-svn.sh | ||
|
||
test_expect_success 'initialize repo' ' | ||
for i in a b c d d/e d/e/f "weird file name" | ||
do | ||
svn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i" | ||
done | ||
' | ||
|
||
test_expect_success 'clone' 'git svn clone "$svnrepo" cloned' | ||
|
||
test_expect_success 'empty directories exist' ' | ||
( | ||
cd cloned && | ||
for i in a b c d d/e d/e/f "weird file name" | ||
do | ||
if ! test -d "$i" | ||
then | ||
echo >&2 "$i does not exist" | ||
exit 1 | ||
fi | ||
done | ||
) | ||
' | ||
|
||
test_expect_success 'more emptiness' ' | ||
svn_cmd mkdir -m "bang bang" "$svnrepo"/"! !" | ||
' | ||
|
||
test_expect_success 'git svn rebase creates empty directory' ' | ||
( cd cloned && git svn rebase ) | ||
test -d cloned/"! !" | ||
' | ||
|
||
test_expect_success 'git svn mkdirs recreates empty directories' ' | ||
( | ||
cd cloned && | ||
rm -r * && | ||
git svn mkdirs && | ||
for i in a b c d d/e d/e/f "weird file name" "! !" | ||
do | ||
if ! test -d "$i" | ||
then | ||
echo >&2 "$i does not exist" | ||
exit 1 | ||
fi | ||
done | ||
) | ||
' | ||
|
||
test_expect_success 'git svn mkdirs -r works' ' | ||
( | ||
cd cloned && | ||
rm -r * && | ||
git svn mkdirs -r7 && | ||
for i in a b c d d/e d/e/f "weird file name" | ||
do | ||
if ! test -d "$i" | ||
then | ||
echo >&2 "$i does not exist" | ||
exit 1 | ||
fi | ||
done | ||
if test -d "! !" | ||
then | ||
echo >&2 "$i should not exist" | ||
exit 1 | ||
fi | ||
git svn mkdirs -r8 && | ||
if ! test -d "! !" | ||
then | ||
echo >&2 "$i not exist" | ||
exit 1 | ||
fi | ||
) | ||
' | ||
|
||
test_done |