เป็นไปได้ไหมที่จะใช้คีย์เวิร์ด RCS Revision สำหรับเส้นทางดีโป

ฉันจัดการเพื่อใช้คีย์เวิร์ด $Revision$ RCS ใน Perforce: เมื่อฉันอัปเดตไฟล์ //depot/dev_projects/main/src/include/version.h มันจะอัปเดตการกำหนดของฉันในไฟล์อย่างดี:

#define VCS_VERSION "$Revision: #4 $"

ซึ่งรวมถึงการแก้ไขสำหรับไฟล์ version.h

สิ่งที่ฉันต้องการจริงๆ คือการฝังการแก้ไขสำหรับโฟลเดอร์ของโครงการ //depot/dev_projects/main/src/ ของฉันลงในไฟล์ version.h ดังนั้นหากมีคนส่งไฟล์เช่นไปที่ //depot/dev_projects/main/doc/readme.txt ฉันอยากเห็น #define VCS_REVISION "$Revision: #5 $" ใน version.h หลังจากที่ฉันได้รับการแก้ไขล่าสุดจาก Depot

มีวิธีทำเช่นนั้นหรือไม่?


person Ivan Marinov    schedule 07.10.2011    source แหล่งที่มา


คำตอบ (2)


คุณมีสองกรณีที่ต้องกังวล: การออกจากไฟล์และไฟล์ใหม่ สำหรับไฟล์ที่มีอยู่ (และฉันจะถือว่าคุณกำลังพูดถึงไฟล์ c/cpp) คุณสามารถ 'p4 เปิดใหม่' ไฟล์ที่มีประเภทไฟล์ 'text+k' แล้วส่งไฟล์เหล่านั้น:

p4 reopen -t text+k //groovy_project/src/....cpp

การดำเนินการนี้จะเปิดไฟล์ .cpp ทั้งหมดอีกครั้งในตำแหน่ง //groovy_project/src และทำให้เป็น 'text+k' (+k หมายถึงการขยายคีย์เวิร์ด RCS แต่ฉันเดาว่าคุณคงทราบดีอยู่แล้วเนื่องจากคุณใช้การขยายคีย์เวิร์ดได้)

สำหรับไฟล์ใหม่ คุณควรใช้คำสั่ง 'p4 typemap' 'p4 typemap' จะแสดงแผนผังพิมพ์ในตัวแก้ไขของคุณ แบบฟอร์มนี้มีการแมปไฟล์กับประเภทไฟล์สำหรับไฟล์ใหม่ที่เพิ่มลงในดีโป ไฟล์เหล่านี้เป็นประเภทไฟล์เริ่มต้นที่ไฟล์ใหม่จะได้รับ (เว้นแต่ไฟล์ใหม่ที่เพิ่มจะใช้ประเภทไฟล์อื่นอย่างชัดเจนเมื่อเพิ่มไฟล์) เช่น ถ้าคุณมี

TypeMap:
       text+k //groovy_project/src/....cpp

ในแผนผังประเภทของคุณ ไฟล์ .cpp ใหม่ทั้งหมดในโฟลเดอร์ //groovy_project/src จะได้รับประเภทไฟล์ text+k เพื่อให้สามารถขยายคำหลักได้

หมายเหตุ หากคุณระบุประเภทไฟล์ใหม่ให้แตกต่างจากที่พบในแผนผังประเภทอย่างชัดเจน ระบบจะใช้ประเภทที่ระบุอย่างชัดเจน สมมติว่าคุณมีแผนผังด้านบน คำสั่ง:

p4 add -t text ~/projects/groovy_project/src/newfile.cpp

ไฟล์นี้จะถูกเพิ่มลงในดีโปเป็นข้อความ ไม่ใช่ text+k

ฉันหวังว่าข้อมูลนี้จะช่วยได้

แก้ไข:

หลังจากอ่านการแก้ไขคำถามเดิมของคุณแล้ว คำตอบสั้นๆ คือไม่ คุณไม่สามารถเพิ่มการแก้ไขสำหรับโฟลเดอร์ได้ คำตอบที่ยาวกว่าเล็กน้อยคือ Perforce ไม่รู้เกี่ยวกับโฟลเดอร์/ไดเร็กทอรีจริงๆ มันแค่รู้เกี่ยวกับไฟล์ (และดังนั้นเส้นทางไปยังไฟล์) ไดเร็กทอรีไม่ใช่วัตถุแต่ละอย่างในฐานข้อมูลในลักษณะที่จะทำให้สิ่งที่คุณต้องการทำงานได้

person Mark    schedule 07.10.2011
comment
ขอบคุณสำหรับคำตอบที่รวดเร็วของคุณ ฉันไม่สามารถอธิบายตัวเองได้ชัดเจน ดังนั้นฉันจึงแก้ไขคำถามของฉัน - person Ivan Marinov; 20.10.2011
comment
ขอขอบคุณอีกครั้ง การแก้ไขของคุณดูเหมือนจะเป็นเช่นนั้น โฟลเดอร์ไม่ใช่เอนทิตีสำหรับ p4 บางทีการคอมมิต hooks อาจช่วยได้ แต่ฉันไม่ได้ใช้ p4 อีกต่อไป :) - person Ivan Marinov; 25.09.2012

ฉันคิดว่าคุณต้องการคำหลัก $File$:

http://kb.perforce.com/article/54/using-rcs-keywords

person randy-wandisco    schedule 08.10.2011
comment
ขอบคุณสำหรับคำตอบของคุณ แต่ฉันต้องการบางอย่างเช่น $Revision$ แต่สำหรับโฟลเดอร์ - person Ivan Marinov; 25.09.2012