รหัสผลลัพธ์ใน SVN หมายถึงอะไร


300

รหัสผลลัพธ์ใน SVN หมายถึงอะไร ฉันต้องการการอ้างอิงด่วน

คำตอบ:


518

สำหรับรายละเอียดเพิ่มเติมดู SVNBook: "สถานะของการทำงานคัดลอกไฟล์และไดเรกทอรี"

สถานะทั่วไป:

U : อัปเดตไฟล์ทำงานแล้ว

G : การเปลี่ยนแปลงของ repo จะถูกรวมเข้ากับสำเนาการทำงานโดยอัตโนมัติ

M : สำเนาทำงานถูกแก้ไข

C : ไฟล์นี้ขัดแย้งกับเวอร์ชั่นใน repo

? : ไฟล์นี้ไม่ได้อยู่ภายใต้การควบคุมเวอร์ชัน

! : ไฟล์นี้อยู่ภายใต้การควบคุมเวอร์ชัน แต่ขาดหายไปหรือไม่สมบูรณ์

ตอบ : ไฟล์นี้จะถูกเพิ่มในการควบคุมเวอร์ชัน (หลังจากส่งมอบ)

A + : ไฟล์นี้จะถูกย้าย (หลังจากกระทำ)

D : ไฟล์นี้จะถูกลบ (หลังจากกระทำ)

S : นี่หมายความว่าไฟล์หรือไดเรกทอรีถูกเปลี่ยนจากเส้นทางของส่วนที่เหลือของสำเนาการทำงาน (ใช้สวิตช์ svn) ไปยังสาขา

ฉัน : ไม่สนใจ

X : คำจำกัดความภายนอก

~ : เปลี่ยนประเภทแล้ว

R : รายการถูกแทนที่ในสำเนาการทำงานของคุณ ซึ่งหมายความว่าไฟล์ถูกกำหนดเวลาสำหรับการลบจากนั้นไฟล์ใหม่ที่มีชื่อเดียวกันถูกกำหนดเวลาไว้สำหรับการเพิ่มเข้ามาแทนที่

L : รายการถูกล็อค

E : มีรายการตามที่มันจะถูกสร้างขึ้นโดยการปรับปรุง svn


12
"R": ไฟล์นี้ถูกแทนที่
รายการ

8
เกี่ยวกับEอะไร เอกสารทั้งหมดกล่าวว่า "มีอยู่" ซึ่งไม่เป็นประโยชน์
Pops

2
+1 แต่ "G: การเปลี่ยนแปลงของธุรกรรมซื้อคืนถูกรวมเข้ากับสำเนาการทำงานโดยอัตโนมัติ" ไม่ได้อยู่ในแหล่งที่ให้ (อีกแล้ว?)
Julian

86

นอกจากนี้โปรดทราบว่ารหัสผลลัพธ์ในคอลัมน์ที่สองอ้างอิงถึงคุณสมบัติของไฟล์ ตัวอย่างเช่น:

U   filename.1
 U  filename.2  
UU  filename.3

filename.1: ไฟล์ถูกอัปเดต
filename.2: คุณสมบัติหรือคุณสมบัติของไฟล์ (เช่น svn: คำหลัก) ได้รับการอัปเดต
filename.3: ทั้งไฟล์และคุณสมบัติได้รับการอัปเดต



19

ฉันต้องการพูดบางอย่างเกี่ยวกับสถานะ "G"

G: การเปลี่ยนแปลงของ repo จะถูกรวมเข้ากับสำเนาการทำงานโดยอัตโนมัติ

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

U = รายการ (U) pdated เป็นเวอร์ชันที่เก็บ

G = การเปลี่ยนแปลงภายในเครื่องของรายการ (G) ed พร้อมที่เก็บ

การเปลี่ยนแปลงในท้องถิ่นของ C = item (C) เป็นไปตามที่เก็บข้อมูล

D = รายการ (D) ถูกลบจากสำเนาการทำงาน

A = รายการ (A) dded เพื่อสำเนาการทำงาน


เกี่ยวกับสถานะ 'G' ฉันมีการเปลี่ยนแปลง 2 ชุดใน 2 ไดเรกทอรีที่แตกต่างกัน ฉันยืนยันการเปลี่ยนแปลงจากหนึ่ง checkout-dir และเมื่อฉันอัปเดต checkedout-dir อื่น ๆ มันจะแสดงสถานะ 'G' ซึ่งระบุว่าการเปลี่ยนแปลงในไดเรกทอรีท้องถิ่นได้รับการผสานกับที่เก็บ
GuruM

18

นอกจากนี้ยังมีสถานะ 'E'

E = ไฟล์มีอยู่ก่อนการอัพเดท

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


13

ฉันมักจะใช้ svn ผ่าน gui ไม่ว่าจะเป็น IDE หรือไคลเอนต์ของฉัน ด้วยเหตุนี้ฉันไม่สามารถจำรหัสได้เมื่อฉันต้องหันไปใช้บรรทัดคำสั่ง

ฉันพบว่าแผ่นชีทนี้มีประโยชน์อย่างมาก: การ โค่นล้ม Cheat Sheet


1
ไม่ได้แสดงสถานะ G
Ark-kun

13

คอลัมน์สถานะ SVN

$ svn status
L index.html

เอาต์พุตของคำสั่งแบ่งออกเป็นหกคอลัมน์ แต่ไม่ชัดเจนเพราะบางครั้งคอลัมน์นั้นว่างเปล่า บางทีมันอาจจะเหมาะสมกว่าที่จะระบุคอลัมน์ว่างเปล่าที่มีเครื่องหมายขีดคั่นวิธีls -lแทนที่จะเป็นอะไรเลย จากนั้นยกตัวอย่างL index.htmlเช่น--L--- index.htmlซึ่งทำให้ชัดเจนว่ามีเพียงข้อมูลเดียวที่เรามีในคอลัมน์ที่สามเกี่ยวกับการล็อค อย่างไรก็ตามเมื่อคุณรู้ว่ามันเริ่มมีเหตุผลมากขึ้น

คอลัมน์แรกสถานะ SVN: A, D, M, R, C, X, I,?,!, ~

คอลัมน์แรกระบุว่ารายการถูกเพิ่มลบหรือเปลี่ยนแปลง

      ไม่มีการดัดแปลง

 A    รายการถูกกำหนดไว้สำหรับการเพิ่ม

 D    รายการถูกกำหนดเวลาไว้สำหรับการลบ

 M    รายการได้รับการแก้ไข

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

 C    เนื้อหา (ตรงข้ามกับคุณสมบัติ) ของไอเท็มที่ขัดแย้งกับการอัพเดตที่ได้รับจากที่เก็บ

 X    รายการที่เกี่ยวข้องกับคำจำกัดความภายนอก

 I    รายการจะถูกละเว้น (เช่นกับคุณสมบัติ svn: ละเว้น)

 ?    รายการไม่ได้อยู่ภายใต้การควบคุมเวอร์ชัน

 !    รายการหายไป (เช่นคุณย้ายหรือลบโดยไม่ใช้ svn) นอกจากนี้ยังระบุว่าไดเรกทอรีไม่สมบูรณ์ (การชำระเงินหรือการอัปเดตถูกขัดจังหวะ)

 ~    รายการถูกกำหนดเวอร์ชันเป็นวัตถุประเภทหนึ่ง (ไฟล์ไดเรกทอรีลิงก์) แต่ถูกแทนที่ด้วยวัตถุชนิดอื่น

SVN สถานะคอลัมน์ที่สอง: M, C

คอลัมน์ที่สองจะบอกสถานะของคุณสมบัติของไฟล์หรือไดเรกทอรี

      ไม่มีการดัดแปลง

 M    คุณสมบัติสำหรับรายการนี้ได้รับการแก้ไข

 C    คุณสมบัติสำหรับรายการนี้ขัดแย้งกับการอัปเดตคุณสมบัติที่ได้รับจากที่เก็บ

คอลัมน์ SVN สถานะที่สาม: L

คอลัมน์ที่สามจะได้รับการบรรจุเฉพาะในกรณีที่ไดเรกทอรีสำเนาการทำงานถูกล็อค (โดยปกติการล้างข้อมูล svn ควรจะเพียงพอที่จะล้างออก)

      รายการไม่ถูกล็อค

 L    รายการถูกล็อค

คอลัมน์ SVN สถานะที่สี่: +

คอลัมน์ที่สี่จะได้รับการบรรจุหากรายการนั้นถูกกำหนดเวลาไว้สำหรับการเพิ่มเติมพร้อมกับประวัติ

      ไม่มีการกำหนดประวัติด้วยการส่ง

 +    ประวัติกำหนดด้วยกระทำ

คอลัมน์ SVN สถานะที่ห้า: S

คอลัมน์ที่ห้าจะได้รับการบรรจุหากสำเนาการทำงานของรายการนั้นสัมพันธ์กับพาเรนต์

      รายการเป็นลูกของไดเรกทอรีหลัก

 S    รายการถูกเปลี่ยน

SVN สถานะคอลัมน์ที่หก: K, O, T, B

คอลัมน์ที่หกบรรจุด้วยข้อมูลการล็อค

      เมื่อใช้ –show-updates ไฟล์จะไม่ถูกล็อค หากไม่แสดง –show-updates หมายความว่าไฟล์นั้นไม่ได้ล็อคในสำเนาที่ใช้งานได้

 K    ไฟล์ถูกล็อคในสำเนาการทำงานนี้

 O    ไฟล์ถูกล็อคโดยผู้ใช้รายอื่นหรือในสำเนาการทำงานอื่น สิ่งนี้จะปรากฏขึ้นเมื่อใช้ –show-update

 T    ไฟล์ถูกล็อคในสำเนาทำงานนี้ แต่ล็อคถูกขโมยและไม่ถูกต้อง ไฟล์ถูกล็อคในที่เก็บในปัจจุบัน สิ่งนี้จะปรากฏขึ้นเมื่อใช้ –show-updates เท่านั้น -

 B    ไฟล์ถูกล็อคในสำเนาการทำงานนี้ แต่การล็อคเสียหายและไม่ถูกต้อง ไฟล์ไม่ได้ล็อคอีกต่อไปจะปรากฏเฉพาะเมื่อใช้ –show-updates

คอลัมน์ SVN สถานะที่เจ็ด: *

ข้อมูลที่ล้าสมัยจะปรากฏในคอลัมน์ที่เจ็ด (เฉพาะในกรณีที่คุณผ่านการสลับ –show-updates) นี่เป็นสิ่งที่ผู้ใช้ใหม่กับ SVN คาดหวังว่าคำสั่งจะทำโดยไม่ทราบว่าจะเปรียบเทียบสถานะปัจจุบันของไฟล์กับข้อมูลที่ถูกดึงข้อมูลจากเซิร์ฟเวอร์ในการอัปเดตครั้งล่าสุดเท่านั้น

      รายการในสำเนาการทำงานของคุณเป็นรุ่นล่าสุด

 *    มีการแก้ไขรายการที่ใหม่กว่าบนเซิร์ฟเวอร์



7

เมื่อใดก็ตามที่คุณไม่มีสิทธิ์เข้าถึงเอกสาร ( SVNBook ) ให้พิมพ์ (Linux):

svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'

หรือแทรกฟังก์ชั่นต่อไปนี้ในไฟล์ ~ / .bashrc ของคุณเช่น:

svncode() {
  symbol=$1
  [ $symbol ] &&  svn help status | grep \'$(echo $symbol)\' || \
  echo "usage: svncode <symbol>"
}

ป้อนคำอธิบายรูปภาพที่นี่


1
IMO ไม่ใช่ "เมื่อคุณรีบ" แต่ "เมื่อคุณไม่สามารถเข้าถึงเอกสาร" (เช่น SVNBook)
บาห์เรน

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