I'm having a hard time figuring out a good title, so if you have an idea how to express my problem in a clearer way, please edit.
I am working on a big project which uses SVN. Since I am used to using git (committing often, working with many branches) and also don't want to change my workflow, I set up a git repository in the parent directory of my SVN working copy for local version control. All SVN related files have been included in the .gitignore
. Using git-svn was not really an option for me because I didn't want to "pollute" the SVN repo with all my tiny commits.
Now recently I have begun work which is closely related to the work of another person (call him person B) on the same project. He however does not feel ready yet to push his work into the SVN repository, so initially he gave me his changed files manually and I included them into my project in branch topic
. Since this procedure is quite laborious, we decided to use git for exchanging progress on the project.
Because I did not want to mess with the SVN of person B, my idea was the following:
- I created a bare repo from my git repo and put it on a server which is accessible by person B
- person B runs
git init
, copies my.gitignore
file, runsgit add .
and makes his initial commit - person B renames his branch to
topic
, adds the bare repo I created as remoteorigin
and fetches all the data
Since I had already included his work in my repo, person B's topic
and origin/topic
should now not differ at all. But they do.
Two problems that I have encountered (there are possibly more):
- Some files have been added to person B's git repo even though they were on the
.gitignore
list (which is the exact same file that works fine for me) - When running
git diff topic origin/topic
it shows one file which definitely exists in both topic and origin/topic as deleted (path in origin/topic:/dev/null
)
Does anybody have an idea what is going wrong here? Also suggestions for alternatives are welcome, but note that person B pushing his changes to the SVN repo and/or abandoning SVN altogether on the whole project are no options.