作者zzss2003 (brotherD)
看板Soft_Job
标题[请益] 当SVN update後,档案遇到三方冲突...
时间Sat Oct 5 13:58:26 2019
https://imgur.com/a/pPbv9EU
我update之後,有几个冲突档(图一)
点开第一个冲突的档案mac.c,竟然是三方冲突!?(图二)
我以为冲突是发生在working copy与repository之间,为什麽是三个? 从图二来看很清楚
可以知道最右边的mac.c.mine是working copy,但我就不懂r2216与r2240,哪一个才是在
repository上面
所以我在该冲突档mac.c点右键,选取show log,想知道在repository上面正确的版本是
2216还是2240(图三),但发生了不知道怎麽解释的状况...似乎是路径不存在吗?(图四)
烦请大大过目一下,指点一下小弟。谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.216.40.132 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1570255108.A.5B2.html
※ 编辑: zzss2003 (61.216.40.132 台湾), 10/05/2019 13:58:57
1F:推 yamakazi: 表示你check out後有人check in啊 就自己看一下哪边conf 10/05 14:03
2F:→ yamakazi: lict手动resolve就好 要自动resolve也行 10/05 14:03
3F:→ yamakazi: 下次怕conflict可以先锁起来 有人干谯再解锁 10/05 14:05
我能理解会发生conflict是因为我在checkout与update的这期间,有人又checkin,但我不
理解的是,为什麽会有三方冲突?
换句话说,如果我当初checkout下来的版本是N,且当前在repository上面的版本是N+2,
那麽冲突只会发生在N与N+2之间。
但是在这个情况,是三方冲突,我不了解为什麽会多出第三个版号
※ 编辑: zzss2003 (61.216.40.132 台湾), 10/05/2019 14:10:15
4F:推 yamakazi: 假设原本版号N 你在第一行改动 版号变N+2 别人在第二行 10/05 14:25
5F:→ yamakazi: 改动并check in版号N+1 你要check in时 repo不晓得第二 10/05 14:25
6F:→ yamakazi: 行到底要照N+1还是N+2 就会把N N+1 N+2全部显示要你reso 10/05 14:25
7F:→ yamakazi: lve 因为repo知道你并不是在最新版上作第一行改动 10/05 14:25
8F:推 yamakazi: 因为你N+2只改了第一行 但第二行跟N+1不同 这个不同不是 10/05 14:28
9F:→ yamakazi: 因为你改动而是你用到旧版本 repo会知道所以要你resolve 10/05 14:28
抱歉我没办法完全理解你想表达的意思,但我认为你想表达的是:
从SVN角度看到的版本有三个,分别是
1. 一开始我从repo checkout下来的原始版本,看起来是r2216
2. repo上面目前的最新版本,r2240
3. 我从r2216开始更改的版本,mine
所以说,SVN除了把mine跟2240的冲突呈现给我看以外,也顺便把最一开始的2216版本顺便
一起呈现出来
※ 编辑: zzss2003 (61.216.40.132 台湾), 10/05/2019 15:47:07
10F:→ v7q4: 最後上的人 解决所有conflict就好了啊 10/05 18:02
11F:→ LINGZ: 若仅checkout, update, 没变更worksapce的档案就应无冲突 10/07 07:18