簡體   English   中英

SVN沖突,硬盤上沒有文件

[英]SVN conflict with no file on hard drive

我有兩台PC和svn repo。 我已使用筆記本將文件添加到svn,並在另一個上說了svn。 該文件是新文件,在我的第二台PC上不存在,但得到:

@konrad:~/svn$ ls web/web/browser.xslt.xml
ls: cannot access web/web/browser.xslt.xml: No such file or directory

@konrad~/svn$ svn up
Conflict discovered in 'web/web/WEB-INF/xslt/browser.xslt.xml'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options:

這是什么意思?

您的ls顯示了一個不同的文件: web/web/browser.xslt.xml而不是web/web/WEB-INF/xslt/browser.xslt.xml 您確定系統上沒有web/web/WEB-INF/xslt/browser.xslt.xml嗎?

我一直都遇到這些神秘的沖突,這令人沮喪,因為在解決這個問題之前您什么也做不了。 我想您可以進行完全比較 ,然后決定合並什么或如何合並,但是我總是感到沮喪,因為我真的沒有時間思考和解決問題。

終止更新並執行svn status 這將為您提供原因。 也許您已使用svn delete刪除了該文件,並且此文件正在進行更新。 也許您添加了文件,其他人也做了。 也許您的驅動器上有該文件的非Subversion版本,有人在Subversion中添加了該文件。 有時,我發現沖突只不過是svn:mergeinfo屬性中的沖突。

最簡單的方法就是擺脫問題,接受存儲庫中的所有內容:

  1. 對文件進行svn resolved 那將使它脫離沖突狀態
  2. 現在對文件執行svn status 這將向您顯示Subversion認為您做了什么。 例如,您是否刪除了此文件或添加了此文件。
  3. 如果您看到文件已被修改 ,請對它進行比較,以便可以看到被修改的內容。 請記住,差異也可以是屬性值!
  4. 為了安全起見,如果文件存在於您的工作副本中,請將該文件復制到其他位置。
  5. 做一個svn revert svn status應顯示文件為原始文件。
  6. 現在,您可以對該文件進行svn update 現在,您將擁有存儲庫中的最新副本。

清理完所有內容后,您可以決定如何繼續。 即使這是我所做的更改與某人所做的更改之間的真正沖突,我仍然更喜歡這樣做。 我可以使用vimdiff來查看差異,並且比在更新過程中進行更新要容易得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM