รหัสผลลัพธ์ใน SVN หมายถึงอะไร ฉันต้องการการอ้างอิงด่วน
รหัสผลลัพธ์ใน SVN หมายถึงอะไร ฉันต้องการการอ้างอิงด่วน
คำตอบ:
สำหรับรายละเอียดเพิ่มเติมดู SVNBook: "สถานะของการทำงานคัดลอกไฟล์และไดเรกทอรี"
สถานะทั่วไป:
U : อัปเดตไฟล์ทำงานแล้ว
G : การเปลี่ยนแปลงของ repo จะถูกรวมเข้ากับสำเนาการทำงานโดยอัตโนมัติ
M : สำเนาทำงานถูกแก้ไข
C : ไฟล์นี้ขัดแย้งกับเวอร์ชั่นใน repo
? : ไฟล์นี้ไม่ได้อยู่ภายใต้การควบคุมเวอร์ชัน
! : ไฟล์นี้อยู่ภายใต้การควบคุมเวอร์ชัน แต่ขาดหายไปหรือไม่สมบูรณ์
ตอบ : ไฟล์นี้จะถูกเพิ่มในการควบคุมเวอร์ชัน (หลังจากส่งมอบ)
A + : ไฟล์นี้จะถูกย้าย (หลังจากกระทำ)
D : ไฟล์นี้จะถูกลบ (หลังจากกระทำ)
S : นี่หมายความว่าไฟล์หรือไดเรกทอรีถูกเปลี่ยนจากเส้นทางของส่วนที่เหลือของสำเนาการทำงาน (ใช้สวิตช์ svn) ไปยังสาขา
ฉัน : ไม่สนใจ
X : คำจำกัดความภายนอก
~ : เปลี่ยนประเภทแล้ว
R : รายการถูกแทนที่ในสำเนาการทำงานของคุณ ซึ่งหมายความว่าไฟล์ถูกกำหนดเวลาสำหรับการลบจากนั้นไฟล์ใหม่ที่มีชื่อเดียวกันถูกกำหนดเวลาไว้สำหรับการเพิ่มเข้ามาแทนที่
L : รายการถูกล็อค
E : มีรายการตามที่มันจะถูกสร้างขึ้นโดยการปรับปรุง svn
นอกจากนี้โปรดทราบว่ารหัสผลลัพธ์ในคอลัมน์ที่สองอ้างอิงถึงคุณสมบัติของไฟล์ ตัวอย่างเช่น:
U filename.1
U filename.2
UU filename.3
filename.1: ไฟล์ถูกอัปเดต
filename.2: คุณสมบัติหรือคุณสมบัติของไฟล์ (เช่น svn: คำหลัก) ได้รับการอัปเดต
filename.3: ทั้งไฟล์และคุณสมบัติได้รับการอัปเดต
คุณสามารถรับรายการได้เสมอโดยเรียกใช้:
svn status --help
ฉันต้องการพูดบางอย่างเกี่ยวกับสถานะ "G"
G: การเปลี่ยนแปลงของ repo จะถูกรวมเข้ากับสำเนาการทำงานโดยอัตโนมัติ
ฉันคิดว่าคำจำกัดความข้างต้นไม่ชัดเจนมันสามารถสร้างความสับสนเล็กน้อยเนื่องจากไฟล์ทั้งหมดถูกรวมเข้ากับสำเนาการทำงานโดยอัตโนมัติสิ่งที่ถูกต้องควรเป็น:
U = รายการ (U) pdated เป็นเวอร์ชันที่เก็บ
G = การเปลี่ยนแปลงภายในเครื่องของรายการ (G) ed พร้อมที่เก็บ
การเปลี่ยนแปลงในท้องถิ่นของ C = item (C) เป็นไปตามที่เก็บข้อมูล
D = รายการ (D) ถูกลบจากสำเนาการทำงาน
A = รายการ (A) dded เพื่อสำเนาการทำงาน
นอกจากนี้ยังมีสถานะ 'E'
E = ไฟล์มีอยู่ก่อนการอัพเดท
สิ่งนี้สามารถเกิดขึ้นได้หากคุณสร้างโฟลเดอร์ด้วยตนเองซึ่งจะถูกสร้างขึ้นโดยทำการอัปเดต
ฉันมักจะใช้ svn ผ่าน gui ไม่ว่าจะเป็น IDE หรือไคลเอนต์ของฉัน ด้วยเหตุนี้ฉันไม่สามารถจำรหัสได้เมื่อฉันต้องหันไปใช้บรรทัดคำสั่ง
ฉันพบว่าแผ่นชีทนี้มีประโยชน์อย่างมาก: การ โค่นล้ม Cheat Sheet
$ svn status
L index.html
เอาต์พุตของคำสั่งแบ่งออกเป็นหกคอลัมน์ แต่ไม่ชัดเจนเพราะบางครั้งคอลัมน์นั้นว่างเปล่า บางทีมันอาจจะเหมาะสมกว่าที่จะระบุคอลัมน์ว่างเปล่าที่มีเครื่องหมายขีดคั่นวิธีls -l
แทนที่จะเป็นอะไรเลย จากนั้นยกตัวอย่างL index.html
เช่น--L--- index.html
ซึ่งทำให้ชัดเจนว่ามีเพียงข้อมูลเดียวที่เรามีในคอลัมน์ที่สามเกี่ยวกับการล็อค อย่างไรก็ตามเมื่อคุณรู้ว่ามันเริ่มมีเหตุผลมากขึ้น
คอลัมน์แรกระบุว่ารายการถูกเพิ่มลบหรือเปลี่ยนแปลง
ไม่มีการดัดแปลง
A
รายการถูกกำหนดไว้สำหรับการเพิ่ม
D
รายการถูกกำหนดเวลาไว้สำหรับการลบ
M
รายการได้รับการแก้ไข
R
รายการถูกแทนที่ในสำเนาการทำงานของคุณ ซึ่งหมายความว่าไฟล์ถูกกำหนดเวลาสำหรับการลบจากนั้นไฟล์ใหม่ที่มีชื่อเดียวกันจะถูกกำหนดเวลาไว้สำหรับการเพิ่มเข้ามาแทนที่
C
เนื้อหา (ตรงข้ามกับคุณสมบัติ) ของไอเท็มที่ขัดแย้งกับการอัพเดตที่ได้รับจากที่เก็บ
X
รายการที่เกี่ยวข้องกับคำจำกัดความภายนอก
I
รายการจะถูกละเว้น (เช่นกับคุณสมบัติ svn: ละเว้น)
?
รายการไม่ได้อยู่ภายใต้การควบคุมเวอร์ชัน
!
รายการหายไป (เช่นคุณย้ายหรือลบโดยไม่ใช้ svn) นอกจากนี้ยังระบุว่าไดเรกทอรีไม่สมบูรณ์ (การชำระเงินหรือการอัปเดตถูกขัดจังหวะ)
~
รายการถูกกำหนดเวอร์ชันเป็นวัตถุประเภทหนึ่ง (ไฟล์ไดเรกทอรีลิงก์) แต่ถูกแทนที่ด้วยวัตถุชนิดอื่น
คอลัมน์ที่สองจะบอกสถานะของคุณสมบัติของไฟล์หรือไดเรกทอรี
ไม่มีการดัดแปลง
M
คุณสมบัติสำหรับรายการนี้ได้รับการแก้ไข
C
คุณสมบัติสำหรับรายการนี้ขัดแย้งกับการอัปเดตคุณสมบัติที่ได้รับจากที่เก็บ
คอลัมน์ที่สามจะได้รับการบรรจุเฉพาะในกรณีที่ไดเรกทอรีสำเนาการทำงานถูกล็อค (โดยปกติการล้างข้อมูล svn ควรจะเพียงพอที่จะล้างออก)
รายการไม่ถูกล็อค
L
รายการถูกล็อค
คอลัมน์ที่สี่จะได้รับการบรรจุหากรายการนั้นถูกกำหนดเวลาไว้สำหรับการเพิ่มเติมพร้อมกับประวัติ
ไม่มีการกำหนดประวัติด้วยการส่ง
+
ประวัติกำหนดด้วยกระทำ
คอลัมน์ที่ห้าจะได้รับการบรรจุหากสำเนาการทำงานของรายการนั้นสัมพันธ์กับพาเรนต์
รายการเป็นลูกของไดเรกทอรีหลัก
S
รายการถูกเปลี่ยน
คอลัมน์ที่หกบรรจุด้วยข้อมูลการล็อค
เมื่อใช้ –show-updates ไฟล์จะไม่ถูกล็อค หากไม่แสดง –show-updates หมายความว่าไฟล์นั้นไม่ได้ล็อคในสำเนาที่ใช้งานได้
K
ไฟล์ถูกล็อคในสำเนาการทำงานนี้
O
ไฟล์ถูกล็อคโดยผู้ใช้รายอื่นหรือในสำเนาการทำงานอื่น สิ่งนี้จะปรากฏขึ้นเมื่อใช้ –show-update
T
ไฟล์ถูกล็อคในสำเนาทำงานนี้ แต่ล็อคถูกขโมยและไม่ถูกต้อง ไฟล์ถูกล็อคในที่เก็บในปัจจุบัน สิ่งนี้จะปรากฏขึ้นเมื่อใช้ –show-updates เท่านั้น -
B
ไฟล์ถูกล็อคในสำเนาการทำงานนี้ แต่การล็อคเสียหายและไม่ถูกต้อง ไฟล์ไม่ได้ล็อคอีกต่อไปจะปรากฏเฉพาะเมื่อใช้ –show-updates
ข้อมูลที่ล้าสมัยจะปรากฏในคอลัมน์ที่เจ็ด (เฉพาะในกรณีที่คุณผ่านการสลับ –show-updates) นี่เป็นสิ่งที่ผู้ใช้ใหม่กับ SVN คาดหวังว่าคำสั่งจะทำโดยไม่ทราบว่าจะเปรียบเทียบสถานะปัจจุบันของไฟล์กับข้อมูลที่ถูกดึงข้อมูลจากเซิร์ฟเวอร์ในการอัปเดตครั้งล่าสุดเท่านั้น
รายการในสำเนาการทำงานของคุณเป็นรุ่นล่าสุด
*
มีการแก้ไขรายการที่ใหม่กว่าบนเซิร์ฟเวอร์
ดูในเอกสารอ้างอิง Subversion Book: "สถานะของไฟล์และไดเรกทอรีที่ใช้งานได้"
แนะนำเป็นอย่างยิ่งสำหรับทุกคนที่ทำสิ่งใดกับ SVN
เมื่อใดก็ตามที่คุณไม่มีสิทธิ์เข้าถึงเอกสาร ( 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>"
}