Quick preface. I have poured over tons and tons of articles but nothing seems to be exactly my situation and up to date information.
My program just recently switched from CVS to SVN 1.6. We read the redbeans book and have adopted the work-flow as laid out here. Simply, they are:
- Create a new 开发者_Go百科branch for each change request,
svn copy ^/trunk ^/branches/cr####
- Perform work and commit
- Merge with trunk regularly,
svn merge ^/trunk
- Switch to trunk and reintegrate
svn merge --reintegrate ^/branches/cr####
This was working beautifully up until a week ago. Now, performing the same steps causes countless conflicts on merge, but on files that were not locally modified. For example, let's say someone else created a branch, cr1234 and made a change to foo.c. Meanwhile, before branch cr1234 was reintegrated into the trunk, I created another branch, cr5678. Now in my branch, cr5678, I modify bar.c and commit to the branch. At some point, the branch cr1234 was reintegrated into the trunk, so there is an update to foo.c in the trunk but not in my branch cr5678. Before I can reintegrate my branch cr5678, I perform a merge as stated above, svn merge ^/trunk
. Here is the strange thing, foo.c will be considered in conflict even though I didn't touch it. This happens for 80%+ of files being merged. Furthermore, often times, the same kind of conflicts are occurring when reintegrating from a branch to the trunk. This seems like something svn should be able to figure out.
This was working great for a few weeks. I suspect the first branch to have problems had svn renames in it. I'm not sure if that's what happened or not but now it seems everything is screwed up. I don't see files with the svn:merginfo property so I don't know why the conflicts are there.
We are all new to subversion so I do fear we have corrupted the repository somehow and am not sure what course we should take. Any suggestions of things to try to figure out what might be causing conflicts even though the merge should be trivial?
精彩评论