SVN ยังคงมีความขัดแย้ง?


287

ฉันจะเอาไดเร็กทอรีนี้ออกจากความขัดแย้งได้อย่างไร? ฉันไม่สนใจว่าจะแก้ไขโดยใช้ "ของพวกเขา" หรือ "ของฉัน" หรืออะไรก็ตาม ...

PS C:\Users\Mark\Desktop\myproject> svn ci -m "gr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

PS C:\Users\Mark\Desktop\myproject> svn resolve --accept working C:\Users\Mark\Desktop\myproject\addons
Resolved conflicted state of 'C:\Users\Mark\Desktop\myproject\addons'

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grr"
svn: Commit failed (details follow):
svn: Commit item 'addons' has copy flag but an invalid revision

PS C:\Users\Mark\Desktop\myproject> svn update
   C addons
svn: Can't move 'addons\debug_toolbar\templates\debug_toolbar\.svn\tmp\entries' to 'addons\debug_toolbar\templates\debug
_toolbar\.svn\entries': The file or directory is corrupted and unreadable.

PS C:\Users\Mark\Desktop\myproject> svn cleanup

PS C:\Users\Mark\Desktop\myproject> svn update
Skipped 'addons'
At revision 51.
Summary of conflicts:
  Skipped paths: 1

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grrr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

93
คำตอบคือ: [ชื่อไฟล์ที่แก้ไข svn] ทำสิ่งนี้แทนวิธีแก้ปัญหาที่ยอมรับ
Travis Schneeberger

1
@TravisSchneeberger วิธีแก้ปัญหาที่ยอมรับนั้นใช้ได้ is
Hi-Angel

svn resolved * ชื่อไฟล์ * ไม่สามารถแก้ไขให้ฉันได้
Reinierpost

คำตอบ:


453

ให้คำสั่งต่อไปนี้:

svn resolved <filename or directory that gives trouble>

(ขอบคุณ @Jeremy Leipzig สำหรับคำตอบนี้ในความคิดเห็น)


36
อย่างจริงจังถ้าคุณไม่สนใจว่าจะแก้ไขอย่างไร (บางทีคุณอาจจะลบมันต่อไป) นี่คือคำตอบที่ถูกต้อง
invertedSpear

1
นี่ไม่ได้แก้ปัญหาอะไร ข้อผิดพลาดอาจเกิดขึ้นอีกครั้งในการคอมมิตครั้งต่อไป
ธ เดช

ขอบคุณมากมันได้ผลสำหรับฉัน! คุณต้องอยู่ใน svn root repo ของคุณคุณสามารถใช้คำสั่งนี้ได้!
GeekHades

276

นี่คือวิธีแก้ไข:

svn remove --force filename
svn resolve --accept=working  filename
svn commit

รายละเอียดเพิ่มเติมอยู่ที่: http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html


หากคุณกำลังทำงานกับ Eclipse IDE คุณยังสามารถใช้โซลูชัน "non command line" ของฉันซึ่งฉันอธิบายไว้ในคำตอบแยกต่างหากด้านล่าง
Peter Wippermann

3
โดยใช้ svn 1.7.4, svn help ได้รับการแก้ไขระบุว่า "ถูกเลิกใช้แล้วเนื่องจากการเรียกใช้ 'svn fix --accept working'"
wreckgar23

36

สำหรับฉันเพียงย้อนกลับ -ตัวเลือกอินฟินิตี้ความลึกคงที่ไดเร็กทอรีของ Svn ยังคงอยู่ในปัญหาความสับสน:

svn revert --depth infinity "<directory name>"
svn update "<directory name>"

1
เพื่อเปลี่ยนกลับไดเร็กทอรีไฟล์ทั้งหมดหรือไม่มีไฟล์อีกต่อไป
biology.info

เพื่อแก้ไขข้อขัดแย้งของไฟล์ที่ถูกลบในเครื่องซึ่งมีอยู่บนเซิร์ฟเวอร์ตัวเลือกนี้ใช้งานได้ ..
นีโอ

1
ขอบคุณมาก. "svn ย้อนกลับ - ความลึกอินฟินิตี้" ทำงานให้ฉันและกู้คืนไฟล์ที่ถูกลบซึ่งไม่ได้ปรากฏขึ้นอีกเพียงแค่กับ "svn up"
Rauli Rajande

16
  1. แก้ไข svn
  2. การล้างข้อมูล svn
  3. อัพเดต svn

.. คำสั่ง svn CLI สามคำสั่งในลำดับนี้ในขณะที่ cd-ed ในไดเร็กทอรีที่ถูกต้องใช้งานได้สำหรับฉัน


@Elad Tabak: ในกรณีของฉันฉันต้องทำมันในไดเรกทอรีหลักของไฟล์ที่ทำให้ฉันมีปัญหานี่อาจเป็นสิ่งที่คุณเจอ
Jay Sullivan

11

หากคุณกำลังใช้ Eclipse IDE และพบข้อผิดพลาดนี้เมื่อคอมมิตนี่คือโซลูชันในเครื่องมือสำหรับคุณ ฉันใช้ Subclipse แต่วิธีแก้ปัญหาสำหรับ Subversive อาจคล้ายกัน

สิ่งที่คุณอาจไม่สังเกตเห็นคือมีสัญลักษณ์เพิ่มเติมในไฟล์ที่ขัดแย้งกันซึ่งทำเครื่องหมายไฟล์ว่า "ขัดแย้ง"

คลิกขวาที่ไฟล์เลือก "ทีม" และ "แก้ไขข้อขัดแย้ง ... " เลือกการกระทำที่เหมาะสม ฉันรวมไฟล์ด้วยตนเองในระดับข้อความมาก่อนดังนั้นฉันจึงใช้ตัวเลือกแรกซึ่งจะใช้สถานะปัจจุบันของสำเนาในเครื่องของคุณเป็น "โซลูชันที่แก้ไขแล้ว" ตอนนี้กด "ตกลง" เท่านี้ก็เสร็จเรียบร้อย

สัญลักษณ์ที่ขัดแย้งกันควรหายไปและคุณควรกลับมายอมรับได้อีกครั้ง


2
นอกจากนี้ในกรณีที่ไดเรกทอรีขัดแย้งกันคุณสามารถทำ "Team-> Show Tree Conflicts" จากนั้นตรวจสอบข้อขัดแย้งเหล่านั้นทั้งหมดและทำเครื่องหมายว่าแก้ไขแล้ว (ในหน้าต่าง "SVN Tree Conflicts" แยกต่างหาก)
altumano

6

อีกหนึ่งวิธีแก้ไขด้านล่าง

หากทั้งโฟลเดอร์ถูกลบออกและ SVNis แสดงข้อผิดพลาด "admin file .svn is missing" สิ่งต่อไปนี้จะถูกใช้เพื่อแก้ไขข้อขัดแย้งให้อยู่ในสถานะการทำงาน

svn resolve --accept working "file / directory name "

3

คำแนะนำสำหรับ Tortoise SVN

ไปที่ไดเร็กทอรีที่คุณเห็นข้อผิดพลาดนี้ หากคุณไม่มีการเปลี่ยนแปลงใด ๆ ให้ดำเนินการดังต่อไปนี้

ก. คลิกขวาและทำการ 'เปลี่ยนกลับ'
b. เลือกไฟล์ทั้งหมด
ค. จากนั้นอัปเดตไดเรกทอรีอีกครั้ง


3

ฉันใช้คำสั่งต่อไปนี้เพื่อลบความขัดแย้งโดยใช้บรรทัดคำสั่ง

svn revert "location of conflict folder" -R
svn cleanup
svn update

สำหรับการเปลี่ยนกลับไดเร็กทอรีปัจจุบัน

svn revert . -R

ฮ่าฮ่าฮ่าไม่อย่าทำแบบนี้ มันจะทำสิ่งเลวร้าย
นกฮูก

เห็นได้ชัดว่าจะคืนค่าการเปลี่ยนแปลงของคุณ
Ujjwal Roy

มันใช้งานได้จริงสำหรับปัญหาบางอย่างเช่นความขัดแย้งและสามารถแก้ไขได้ผ่าน cli เท่านั้น
zero8

2

หากคุณมีปัญหาในการแก้ไข (เช่นฉัน) และคุณไม่สามารถลบและอัปเดตรีซอร์สได้เนื่องจากคุณได้ทำการเปลี่ยนแปลงหลายอย่างรวมทั้งคุณกำลังใช้ eclipse subversive แทนเนทีฟไคลเอ็นต์ให้ทำตามขั้นตอนเหล่านี้:

  1. ทำสำเนาโครงการทั้งหมดของคุณ
  2. ดำเนินการทีม> ยกเลิกการเชื่อมต่อภายใน eclipse และเลือกที่จะลบข้อมูลเมตา svn
  3. จากนั้นเลือกทีม> แชร์โปรเจ็กต์และชี้ไปที่โฟลเดอร์เดียวกับที่โปรเจ็กต์ของคุณอยู่
  4. เลือกใช่และยอมรับทุกอย่าง (คุณอาจต้องการยกเว้นทรัพยากรในเครื่องเช่นไฟล์การกำหนดค่า)
  5. หากคุณได้ลบหรือย้ายทรัพยากรบางส่วนก่อนที่จะทำการทดลองใช้ครั้งแรกให้ลบทรัพยากรเก่าเหล่านั้นออก (ควรเพิ่มขึ้นเป็นสองเท่าหนึ่งในตำแหน่งเก่าหนึ่งรายการในตำแหน่งใหม่) และทำการลบเหล่านั้น

เสร็จแล้ว


2

ฉันเดาว่าทางออกที่เหมาะสมคือ:

(1) backup your-file/your-directory
(2) svn revert your-file/your-directory
(3) svn update your-file/your-directory
(4) Merge the backup your-file/your-directory to the updated one.
(5) svn ci -m "My work here is done"

0

ฉันมีปัญหาที่คล้ายกันนี่คือวิธีการแก้ไข

xyz @ ip: ~ / FormsProject_SVN $ svn แก้ไขรูปแบบProj / แม่แบบ / ค้นหา

แก้ไขสถานะที่ขัดแย้งกันของ 'formProj / template / search'

ตอนนี้อัปเดตโครงการของคุณ

xyz @ ip: ~ / FormsProject_SVN $ svn ปรับปรุง

กำลังอัปเดต ".":

เลือก: (mc) รักษาการเคลื่อนไหวในพื้นที่ที่ได้รับผลกระทบ, (r) แก้ไขเครื่องหมาย (หยุดการเคลื่อนไหว), (p) เลื่อน, (q) ออกจากความละเอียด, (h) ความช่วยเหลือ: r (เลือกตัวเลือก "r" เพื่อแก้ไข)

แก้ไขสถานะที่ขัดแย้งกันของ 'formProj / template / search'

สรุปความขัดแย้ง: ความขัดแย้งของต้นไม้: เหลืออีก 0 (และ 1 ข้อได้รับการแก้ไขแล้ว)


0

ฉันมีปัญหาเดียวกันใน linux แต่ฉันไม่สามารถแก้ไขได้ด้วยคำตอบที่ยอมรับ ฉันสามารถแก้ไขได้โดยใช้cdเพื่อไปที่โฟลเดอร์ที่ถูกต้องจากนั้นดำเนินการ:

svn remove --force filename  
syn resolve --accept=working filename  
svn up

นั่นคือทั้งหมด


ในบรรทัดที่สองsvnไม่ใช่syn
Diego Romero Rodriguez
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.