質問

We have some company middleware and sometimes its difficult to find the correct version Im looking for so I often have to update to different versions to test them.

I usually checkout:

svn co svn+ssh://(username)@(ip)/srv/svn/intranet/trunk/PYTHON/<application> <local-application>

I then may update to a different version

svn update (path) -r (rev)

Most of the time after a few attempts this will cause the error Node remains in conflict

If I delete the folder and try to do a fresh checkout it just restores what I had. All I want to do is checkout a revision, I have made no changes and it still thinks there are conflicts.

Ive tried to resolve them, but nothing seems to work:

svn update -r 1586

Skipped 'inm/inm' -- Node remains in conflict
D    inm/fabfile.py
D    inm/test.db.bak
D    inm/tests
D    inm/test.db
D    inm/doc
D    inm/test.ini
D    inm/test.sql
U    inm/setup.py
A    inm/inm.egg-info
A    inm/inm.egg-info/SOURCES.txt
A    inm/inm.egg-info/top_level.txt
A    inm/inm.egg-info/PKG-INFO
A    inm/inm.egg-info/entry_points.txt
A    inm/inm.egg-info/dependency_links.txt
A    inm/inm.egg-info/not-zip-safe
A    inm/inm.egg-info/paster_plugins.txt
A    inm/inm.egg-info/requires.txt
U    inm/setup.cfg
Updated to revision 1586.
Killed by signal 15.
Summary of conflicts:
  Skipped paths: 1

svn resolved inm/inm
Resolved conflicted state of 'inm/inm'
(venv)

svn update inm/inm -r 1586
Updating 'inm/inm':
Password: 
Skipped 'inm/inm/templates' -- Node remains in conflict
At revision 1586.
Killed by signal 15.
Summary of conflicts:
  Skipped paths: 1
役に立ちましたか?

解決

I think the answer I was looking for here was

svn revert --depth=infinity inm

I dont care about keeping local changes, only to update to a new revision. I have used this command a few times now and it seems to do the trick

EDIT

Upon looking at my errors again I can see that a lot of the files were likely being changed by tests or builds. I should have added them to an ignore file so that their changes were not detected by svn.

他のヒント

So:

  • Are you only checking out and updating from trunk, or are you sometimes checking out from a branch too?
  • Do you run any programs while testing?
  • What if you did a svn status before you ran the update? Do you have a pristine copy of a checkout?

Conflicts can happen for many reasons.

Imagine you've modified a file that's in your Subversion repository and then did an update to an earlier version or later version. Depending how you do it, Subversion may try to merge the changes between what you did and what you are checking out. Sometimes, Subversion won't if you're not updating from the head of a revision. In that case, Subversion will report that the file is in conflict.

Another reason is that you created a file in your working directory that is not in your revision of Subversion. When you do an update to a revision of Subversion with that file, Subversion will report a conflict.

Then, maybe there's just something wrong with your system. We simply don't have enough information right now.

The next time you do this, do a svn status on your working directory before you do an svn update. In fact, that's always a good idea. This will warn you of any possible conflict with Subversion when you do an update.

One of the things I miss in Subversion that CVS had (and I don't miss much about CVS) was an option that pretends to execute your command. This would allow you to pretend to do an update and warn you of conflicts before you did an actual update. Alas, Subversion doesn't currently have such an option (although it has been heavily requested).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top