threads / bug / 29874

Bug in svn-fe: copying the root directory acts as if it's an empty directory

Subject: Bug in svn-fe: copying the root directory acts as if it's an empty directory

## tl;dr

2 messages between Mar 7, 2012 and Mar 8, 2012.

replies: 1people: 2as markdown or json

Andrew Sayers· Mar 7, 2012, 23:13 UTC · lore

Here's a bug with svn-fe that I stumbled over while snorkelling through repo madness. I've tested it with the version of svn-fe in git.git's master branch.

Copying the root directory to a sub-directory (e.g. doing `svn cp . trunk` to standardise your layout) doesn't correctly initialise the new directory. To replicate the issue, run the following script from an empty directory (update GIT_DIR to point to your git.git repository):

GIT_DIR="/home/andrew/git/git" ROOT_DIR="$(pwd)"

svnadmin create repo
svn checkout "file://$ROOT_DIR/repo" checkout
cd checkout
echo text > README.txt
svn add README.txt
svn ci -m "Created README.txt"
svn cp "file://$ROOT_DIR/repo" "file://$ROOT_DIR/repo/trunk" \
    -m "Created trunk"
cd ..
mkfifo backchannel
mkdir git-repo
cd git-repo/
git init
svnadmin dump --deltas "$ROOT_DIR/repo" \
    | "$GIT_DIR/contrib/svn-fe/svn-fe" 3<../backchannel \
    | "$GIT_DIR/git-fast-import" --cat-blob-fd=3 3>../backchannel
Expected: the git repo contains "README.txt" and "trunk/README.txt"
Observed: "README.txt" exists but "trunk/README.txt" doesn't
	- Andrew
David Barr· Mar 8, 2012, 00:46 UTC · re: Andrew Sayers · lore

Re: Bug in svn-fe: copying the root directory acts as if it's an empty directory

Hi Andrew,

On Thu, Mar 8, 2012 at 10:13 AM, Andrew Sayers <andrew-git@pileofstuff.org> wrote:

Show 7 quoted lines
> Here's a bug with svn-fe that I stumbled over while snorkelling through
> repo madness.  I've tested it with the version of svn-fe in git.git's
> master branch.
>
> Copying the root directory to a sub-directory (e.g. doing `svn cp .
> trunk` to standardise your layout) doesn't correctly initialise the new
> directory.

This issue sounds very familiar, I wonder if there's an existing test or pending patch for it? Maybe Dmitry or Jonathan can recall.

Show 25 quoted lines
> To replicate the issue, run the following script from an
> empty directory (update GIT_DIR to point to your git.git repository):
>
> GIT_DIR="/home/andrew/git/git"
> ROOT_DIR="$(pwd)"
>
> svnadmin create repo
> svn checkout "file://$ROOT_DIR/repo" checkout
> cd checkout
> echo text > README.txt
> svn add README.txt
> svn ci -m "Created README.txt"
> svn cp "file://$ROOT_DIR/repo" "file://$ROOT_DIR/repo/trunk" \
>    -m "Created trunk"
> cd ..
> mkfifo backchannel
> mkdir git-repo
> cd git-repo/
> git init
> svnadmin dump --deltas "$ROOT_DIR/repo" \
>    | "$GIT_DIR/contrib/svn-fe/svn-fe" 3<../backchannel \
>    | "$GIT_DIR/git-fast-import" --cat-blob-fd=3 3>../backchannel
>
> Expected: the git repo contains "README.txt" and "trunk/README.txt"
> Observed: "README.txt" exists but "trunk/README.txt" doesn't
Thanks for including a reproduction.

-- David Barr

← back to recent threads