我正在尝试通过Eric Sink学习版本控制的基础知识 - http://ericsink.com/vcbe/vcbe_usletter_lo.pdf
我现在在第22页。我会为你描述一下这个场景。同一台计算机上的两个用户harry和sally正在处理一个名为lottery.c的文件,该文件存储在一个名为lottery的仓库中。
1 - Harry提交第一个/初始代码。 2 - Sally更改并提交。 3 - 虽然2正在发生,但哈里已经做出了改变,但没有做出改变。 4 - Harry犯了错误。
Transmitting file data .svn: Commit failed (details follow):
svn: File '/lottery.c' is out of date
5 - 要解决此问题,哈里将使用svn update
更新本地副本。
这是我遇到问题的地方!作者说输出是:
lottery harry$ svn update
G lottery.c
Updated to revision 2.
但是,我的输出是:
lottery harry$ svn update
Updating '.':
C lottery.c
Updated to revision 2.
Conflict discovered in file 'lottery.c'.
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
(mc) my side of conflict, (tc) their side of conflict,
(s) show all options:
我是新手,我不知道如何回应这条消息。我的书错了吗?请帮我。感谢。
答案 0 :(得分:39)
如果您有多个人同时更改同一个文件,则两者都可能更改相同的行。这就是发生在你身上的事。莎莉改变了哈利改变的方式。当Harry做svn update
时,Subversion检测到了这一点,并且问你要做什么。
警告:有时Subversion只会查找版本与其版本之间的差异,而不是有意义的差异。例如,如果更改了行的缩进,或者间距不同,或者更改了行结尾,则Subversion会将此声明为冲突,即使它可能不是。这可能就是为什么这本书没有找到这个问题,但你做到了。并不意味着你做错了什么。
怎么办? Subversion给你一些选择。
<<<<<<< .mine
foobar
=======
fubar
>>>>>>> .rxxx
这向您展示了修订版rxxx(Sally所做的)与您所做的更改(Harry的更改)之间的变化。通常,这些变化很小,很容易弄明白该做什么。
increment
,Sally将其称为counter
。正如我所说,我通常做推迟,让我的更新完成,然后处理问题。
解决问题后,您对该文件执行了svn resolved
,让Subversion知道您已修复冲突。
还有其他选择 - 例如,您可以启动第三方差异/合并工具来处理冲突。
有关详细信息,请查看有关resolving merge conflicts。
的Subversion在线手册答案 1 :(得分:6)
如果您选择override func viewDidLoad() {
super.viewDidLoad()
if scoreAdd == scoreAdd1 {
time.text = "\(regulargame)"
}else {
overtime = regulargame + 30
time.text = "\(overtime)"
}
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func btn1(_ sender: AnyObject) {
scoreAdd += 1
score1.text = "\(scoreAdd)"
}
@IBAction func btn2(_ sender: AnyObject) {
scoreAdd1 += 1
score2.text = "\(scoreAdd1)"
}
选项,它会显示:
s
使用(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
查看confilicts然后您可以决定使用
答案 2 :(得分:1)
&#34; G&#34;表示该文件已由其他人修改,但该人所做的修改位于文件的不同部分,因此SVN可以为您合并而无需寻求帮助。
&#34; C&#34;表示该文件不仅被其他人修改,而且他们的更改也与您更改的行相同,因此SVN不知道该怎么做。现在你的工作是合并。
你可能没有做错任何事情,这本书没有错,他们只是忽略了具体变化的细节,显然。