Вопрос

I committed files to the trunk. After committing, I realized that those files should also be applied to older branches. Here is the steps I took:

My Copy (Using Trunk: Application Version 5)

svn commit -m "blah" : revision 123

Old Branch (Application Version 3)

svn merge -r 122:123 svnpath

The problem is that now I get a "local delete, incoming edit upon merge" tree conflict. The folder in question did not exist at all in the old branch. But I'm afraid if I resolve with the working branch that it will remove all the contents of that folder in the trunk. But, I don't want the local copy receiving all the files in that folder either.

I'm obviously misunderstanding something here. (I don't even know if I need to commit it, but I don't want the next commit to be stuck with those files.) How do I get the commited changes into the older branch? Most of the files modified should be the same.


Very late edit to clarify what the goal was before. (This is resolved, but I feel this needs more clarity.)

1) Changes made to trunk (version) 32.

2) Changes merged into branch (version) 26.

3) Wanted to resolve 26 merge conflicts and merge from 26 to 28 to 30 to 32.

4) Other changes down the road would be merged from 26 all the way to the trunk. That means the conflict can not remove folder files in the trunk.

Это было полезно?

Решение

Assuming you have the standard trunk/, branches/ root directory setup in your repository:

cd branches/mybranch
svn merge -r 122:123 ../../trunk .

Другие советы

My solution here might not be optimal, but here is what I did:

svn revert -R .

Then, I readded (svn add) all the local files as well as the conflicting folder, which was no longer in conflict (I don't know why.)

I was then able to commit without conflict. I did have to modify the old files with the new code changes manually, however.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top