ไม่มีใครรู้คำสั่ง SVN เพื่อแสดงรายการความขัดแย้งปัจจุบันระหว่าง repo และสำเนาที่ใช้งานได้
ขอบคุณ
ไม่มีใครรู้คำสั่ง SVN เพื่อแสดงรายการความขัดแย้งปัจจุบันระหว่าง repo และสำเนาที่ใช้งานได้
ขอบคุณ
คำตอบ:
บน Linux หากคุณต้องการดูเฉพาะความขัดแย้งให้ไพพ์สถานะผ่าน grep
svn status | grep -P '^(?=.{0,6}C)'
'^.{0,6}C'
ทำงานได้เช่นกัน?
(svn status) -Match '^(?=.{0,6}C)'
เพียงแค่ใช้ grep!
svn st | grep '^C'
คุณสามารถลองsvn merge -r <revision> --dry-run
ดูว่าเกิดอะไรขึ้น
หากคุณมี ack จาก http://betterthangrep.com/คุณสามารถดำเนินการดังต่อไปนี้
svn st | ack '^C'
สำหรับ Windows PowerShell ใช้:
svn status | sls -Pattern '^(?=.{0,6}C)'
หากคุณได้รวมเข้าด้วยกันแล้วคุณสามารถใช้ได้
svn status
และเห็นตัวพิมพ์ใหญ่ "C" สำหรับความขัดแย้ง แต่โดยปกติแล้วคุณไม่ควรเห็นประเภทนี้ในสำเนาการทำงานของคุณ
อาจเป็นไปได้ที่จะใช้svn merge --dryrun
ในขณะที่ระบุ URL ที่เก็บพร้อมการแก้ไขทั้งหมดหลังจากที่คุณอัปเดตล่าสุด
เช่นถ้า WC ปัจจุบันของคุณใช้การแก้ไข 147 สิ่งนี้สามารถทำได้:
svn merge -r 148:HEAD http://url.to.repo/repo/
ฉันไม่ได้ทำอะไรด้วยตัวเองดังนั้นคุณต้องลองด้วยตัวเอง
หากคุณยังไม่ได้รวมหรืออัปเดตไฟล์ให้ใช้คำสั่งด้านล่าง
svn status --show-updates | grep -P '.*(?=.*M)(?=.*\*).*'
สั้น ๆ
svn st -u | grep -P '.*(?=.*M)(?=.*\*).*'
รายละเอียด
SVN จะไม่ทำเครื่องหมายสถานะความขัดแย้ง (C) จนกว่าคุณจะอัปเดตไฟล์โดยใช้svn update
.
จนกว่าจะถึงเวลานั้นสถานะจะแสดงดังด้านล่าง
+---+------+---------------+---------------+
| M | | | 23246 file1 |
+---+------+---------------+---------------+
| | | * | 23233 file2 |
+---+------+---------------+---------------+
| M | * | 23233 file3 | |
+---+------+---------------+---------------+
M - แก้ไขในเครื่อง
* - การอัปเดต / ขาเข้าจากระยะไกล
M และ * - แก้ไขในท้องถิ่นและในระยะไกล - นี่เป็นข้อขัดแย้ง แต่ svn ยังไม่ได้ทำเครื่องหมาย
บน Mac
$ svn status | grep -e '^!'
ได้งาน
นี่คือผู้ชายสำหรับ grep:
การใช้งาน: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C [num]] [-e pattern] [-f file] [--binary-files = value] [--color = when] [--context [= num]] [--directories = action] [--label] [--line-buffered] [--null] [รูปแบบ] [ไฟล์ ... ]
^!
เป็น regex !
สำหรับบรรทัดที่ขึ้นต้นด้วยทุก เส้นที่ขัดแย้งกันทั้งหมดเริ่มต้นด้วย!
-A 1
อาร์กิวเมนต์ grep จะแสดงบรรทัดหลังเส้นความขัดแย้งซึ่งบางครั้งเกี่ยวข้องกับความขัดแย้ง