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

2 messages from 2012-03-07 to 2012-03-08. Participants: Andrew Sayers, David Barr.
Thread: https://gitlist.dev/t/29874

## Andrew Sayers, 2012-03-07 23:13

Subject: Bug in svn-fe: copying the root directory acts as if it's an empty directory
Message-ID: <4F57EB82.4000309@pileofstuff.org>
URL: https://gitlist.dev/e/4F57EB82.4000309%40pileofstuff.org

```
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, 2012-03-08 00:46

Subject: Re: Bug in svn-fe: copying the root directory acts as if it's an empty directory
Message-ID: <CAFfmPPOB5xq2zHeEL-cPw9HU7Kzm3NVNAoO+znr+Lk=vRyOvOw@mail.gmail.com>
URL: https://gitlist.dev/e/CAFfmPPOB5xq2zHeEL-cPw9HU7Kzm3NVNAoO%2Bznr%2BLk%3DvRyOvOw%40mail.gmail.com
In-Reply-To: <4F57EB82.4000309@pileofstuff.org>

```
Hi Andrew,

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

> 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

```
