(XCode多人开发问题)SVN: How to resolve a conflict tutorial
2012-08-02 03:27
555 查看
转载自:http://www.logicaltrinkets.com/wordpress/?p=178
This tutorial is walkthough on how to resolve a conflict in svn (subversion)
First I will make a test.txt
Now I will commit the changes
Suppose we have 2 users. User1 and User2. Both of them will get and update from svn
Now User1 will change the file to:
He then commits his changes
User2 now comes along and changes his local copy of the file not knowing that it has already been updated by User1 on the server.
When he tries to commit he will get and error from svn.
So User2 performs an update
svn detects that theres a conflict here and require you to take some kind of action.
If you type ‘s’ here you will get a list of the commands and meaning
If you type ‘df’ it will show you a all the conflicts in the following format
‘e’ option will open the conflicted file in the text editor that you configured for svn to use. In this case it will show
You can resolve the conflict here by changing the text to what you desire.
For example:
save your changes and exit your text editor and it will give you the conflict options again. Now if you use the ‘r’ it will mark the file is merged with a ‘G’. A status of ‘G’ means there was a conflict and it has been resolved.
you can now check the status with svn status. You see that test.txt is marked as ‘M’ all thats left to do is commit.
Sometimes the conflicts are a bit more extensive and it requires more time or better tools to resolve the conflict in these cases you can chose ‘p’ to postpone the resolution.
Now if you look in your directory you will see that svn has created a few extra files for you.
The test.txt file is now a file with both User2 and User1′s changes but marked.
test.txt.mine is User2′s copy.
test.txt.r2 is the original base copy
test.txt.r3 is the copy User1 commited
At this point you can choose your favorite merge tools to merge the differences in a file.
I suggest merging the differences into test.txt and the do a
You can also use any of the other files if you wanted to and just pass resolve –accept a different argument. Here are the valid arguments
Now you are ready to commit.
SVNSVN
This tutorial is walkthough on how to resolve a conflict in svn (subversion)
First I will make a test.txt
test
Now I will commit the changes
C:\workspace\test>svn ci -m "making a starting point" Sending . Sending test.txt Transmitting file data . Committed revision 2.
Suppose we have 2 users. User1 and User2. Both of them will get and update from svn
C:\workspace\test>svn up A test.txt At revision 2.
Now User1 will change the file to:
User1 is making a conflict test
He then commits his changes
C:\workspace\test>svn ci -m "User1 starting a conflict" Sending . Sending test.txt Transmitting file data . Committed revision 3.
User2 now comes along and changes his local copy of the file not knowing that it has already been updated by User1 on the server.
test User2 making a conflict
When he tries to commit he will get and error from svn.
svn: Commit failed (details follow): svn: File or directory 'test.txt' is out of date; try updating svn: resource out of date; try updating
So User2 performs an update
C:\workspace\test>svn up Conflict discovered in 'test.txt'. Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options:
svn detects that theres a conflict here and require you to take some kind of action.
If you type ‘s’ here you will get a list of the commands and meaning
(e) edit - change merged file in an editor (df) diff-full - show all changes made to merged file (r) resolved - accept merged version of file (dc) display-conflict - show all conflicts (ignoring merged version) (mc) mine-conflict - accept my version for all conflicts (same) (tc) theirs-conflict - accept their version for all conflicts (same) (mf) mine-full - accept my version of entire file (even non-conflicts) (tf) theirs-full - accept their version of entire file (same) (p) postpone - mark the conflict to be resolved later (l) launch - launch external tool to resolve conflict (s) show all - show this list
If you type ‘df’ it will show you a all the conflicts in the following format
Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: df --- .svn/text-base/test.txt.svn-base Tue Aug 10 10:59:38 2010 +++ .svn/tmp/test.txt.2.tmp Tue Aug 10 11:33:24 2010 @@ -1 +1,3 @@ -test \ No newline at end of file +<<<<<<< .mine +test User2 making conflict======= +User1 is making a conflict test>>>>>>> .r3
‘e’ option will open the conflicted file in the text editor that you configured for svn to use. In this case it will show
<<<<<<< .mine test User2 making conflict======= User1 is making a conflict test>>>>>>> .r3
You can resolve the conflict here by changing the text to what you desire.
For example:
User1 is making a conflict test User2 making conflict
save your changes and exit your text editor and it will give you the conflict options again. Now if you use the ‘r’ it will mark the file is merged with a ‘G’. A status of ‘G’ means there was a conflict and it has been resolved.
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: e Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: r G test.txt Updated to revision 3.
you can now check the status with svn status. You see that test.txt is marked as ‘M’ all thats left to do is commit.
C:\workspace\test2>svn st M test.txt C:\workspace\test2>svn ci -m "conflict resolved" Sending test.txt Transmitting file data . Committed revision 4.
Sometimes the conflicts are a bit more extensive and it requires more time or better tools to resolve the conflict in these cases you can chose ‘p’ to postpone the resolution.
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: p C test.txt Updated to revision 3. Summary of conflicts: Text conflicts: 1
Now if you look in your directory you will see that svn has created a few extra files for you.
08/10/2010 11:44 AM 94 test.txt 08/10/2010 11:44 AM 26 test.txt.mine 08/10/2010 11:44 AM 27 test.txt.r2 08/10/2010 11:44 AM 31 test.txt.r3
The test.txt file is now a file with both User2 and User1′s changes but marked.
<<<<<<< .mine test User2 making conflict======= User1 am making a conflict test>>>>>>> .r3
test.txt.mine is User2′s copy.
test User2 making conflict
test.txt.r2 is the original base copy
test
test.txt.r3 is the copy User1 commited
User1 is making a conflict test
At this point you can choose your favorite merge tools to merge the differences in a file.
I suggest merging the differences into test.txt and the do a
C:\workspace\test>svn resolve --accept working test.txt Resolved conflicted state of 'test.txt'
You can also use any of the other files if you wanted to and just pass resolve –accept a different argument. Here are the valid arguments
base Choose the file that was the BASE revision before you updated your working copy. That is, the file that you checked out before you made your latest edits. working Assuming that you've manually handled the conflict resolution, choose the version of the file as it currently stands in your working copy. mine-full Resolve all conflicted files with copies of the files as they stood immediately before you ran svn update. theirs-full Resolve all conflicted files with copies of the files that were fetched from the server when you ran svn update.
Now you are ready to commit.
C:\workspace\test>svn ci -m "conflict resolved" Sending test.txt Transmitting file data . Committed revision 4.
SVNSVN
相关文章推荐
- (XCode多人开发问题)SVN: How to resolve a conflict tutorial
- SVN: How to resolve a conflict tutorial
- [iphone开发]UISlider tutorial - example how to use slider in iPhone SDK / XCode
- svn 冲突解决 Decide how to resolve conflict on xxxx.java
- svn: how to resolve “local edit, incoming delete upon update”
- svn: how to resolve “local edit, incoming delete upon update” message
- 如何解决flash跑到层上面的问题?How to resolve the div layer appear over the top of flash?
- Android开发时图片Bitmap序列化问题(How to fix a java.io.NotSerializableException: android.graphics.Bitmap)
- 解决SQL 的 Collation 问题:Cannot resolve collation conflict for equal to operation.
- Xcode SVN Error: Attempted to lock an already-locked dir, How to solve?
- 谈谈UG二次开发信息保存的问题/ How to Save Information in NX Development
- How To Debug Memory Leaks with XCode and Instruments Tutorial【转】
- 谈谈UG二次开发信息保存的问题/ How to Save Information in NX Development
- [MAC] How to resolve VOSM(ASM/AAM) circular dependency issue under Mac Xcode
- How To Debug Memory Leaks with XCode and Instruments Tutorial
- iOS开发之 SVN出现 ”the working copy is locked due to.....”的问题
- [Android开发常见问题-16] FragmentActivity cannot be resolve to a type
- [Android开发常见问题-16] FragmentActivity cannot be resolve to a type
- Xcode做ios开发时 message sent to deallocated instance问题的解决方法(gdb和lldb)
- Xcode中使用SVN(进行多人开发)需要注意的问题