เปลี่ยน SVN ส่งข้อความย้อนหลังหรือไม่


85

ฉันต้องการเขียน SVN ส่งข้อความจำนวนมากไปยังโครงสร้างอื่นอีกครั้งเช่นคำนำหน้าหมวดหมู่ จาก:

"foo" now accepts "bar" format for connection string.

ฉันต้องการ

core - database - "foo" now accepts "bar" format for connection string.

มีวิธีง่ายๆในการทำเช่นนี้โดยไม่รวมถึงการทิ้งที่เก็บทั้งหมดโดยใช้svndumpfilterหรือไม่?

ฉันกำลังทำงานกับ TortoiseSVN ในไคลเอนต์ส่วนท้ายและ VisualSVN บนเซิร์ฟเวอร์ (VisualSVN เป็นกระดาษห่อหุ้มแบบคลาสสิกsvnซึ่งฉันสามารถพูดคุยผ่านบรรทัดคำสั่งได้เช่นกัน)

คำตอบ:


98

ใช่ข้อความคอมมิตสามารถเปลี่ยนแปลงได้ มีการนำไปใช้เป็นคุณสมบัติในการแก้ไขคล้ายกับคุณสมบัติไฟล์ปกติ

ในหน้าต่างบันทึก TortoiseSVN คุณสามารถคลิกขวาที่คอมมิตและเลือก "แก้ไขข้อความบันทึก"


+1 ขอบคุณสำหรับสิ่งนี้ ฉันทำงานบางอย่างที่เกี่ยวข้องกับการเปลี่ยนแปลง API บางอย่างที่ฉันต้องการกระทำแยกกับส่วนที่เหลือและฉันก็เขียนข้อความบันทึกเพื่อสะท้อนให้เห็นว่า ... ฉัน "แก้ไข" โดยทำการเปลี่ยนแปลงช่องว่างพร้อมข้อความบันทึกที่อธิบายส่วนที่เหลือ! คราวหน้าจะได้รู้ว่าต้องทำยังไง
Ed Daniel

1
ฉันให้ +1 นี้เช่นกัน แต่ก็ใช้ไม่ได้กับข้อความ "ไม่ได้เปิดใช้งานพื้นที่เก็บข้อมูลเพื่อยอมรับการแก้ไขการแก้ไขขอให้ผู้ดูแลระบบสร้างตะขอก่อนการเปลี่ยนแปลง" ผู้ดูแลระบบจะทราบโดยอัตโนมัติว่าต้องทำอะไร?
J.Merrill

19
คุณกำลังถามฉันว่าคุณมีผู้ดูแลระบบการโค่นล้มที่มีความสามารถหรือไม่? :)
JesperE

@ J.Merrill คุณต้องเรียกดูhooksโฟลเดอร์ที่ตำแหน่งที่ตั้งของที่เก็บและเปลี่ยนชื่อเป็นpre-revprop-change.tmplเพื่อpre-revprop-change.batให้ใช้งานได้
sa_leinad

59

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

svn propset -r N --revprop svn:log "new log message" URL

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

นอกจากนี้ vanilla SVN ยังมีคำสั่งsvnlookซึ่งเป็นประเภทของเครื่องมือการดูแลระบบที่ทำงานโดยตรงกับไฟล์ที่เก็บ เครื่องมือที่ไม่เข้าใจ URL ที่ (คุณต้องมีการเข้าถึงระบบแฟ้มระดับพื้นที่เก็บข้อมูล) แต่เป็นมากได้เร็วขึ้น ไวยากรณ์แตกต่างกันเล็กน้อย แต่คุณสามารถปรับเปลี่ยนคุณสมบัติได้ในลักษณะเดียวกันโดยใช้เครื่องมือนั้น


3
ขอบคุณ @kazark ฉันต้องทำsvn propedit -r N --revprop svn:logเพื่อให้สามารถเปลี่ยนข้อความในโปรแกรมแก้ไขของฉันได้
tutuDajuju

3
เพียงเพื่อเพิ่มบันทึก: โดยค่าเริ่มต้นคำสั่งนั้นจะไม่ทำงานเนื่องจากไม่อนุญาตให้มีการเปลี่ยนแปลงคุณสมบัติการแก้ไขตามค่าเริ่มต้น เพื่อที่จะให้มันผู้ดูแลระบบ SVN ต้องสร้างเบ็ดที่เรียกว่า"pre-revprop การเปลี่ยนแปลง" ข้อมูลนี้อยู่ใน FAQตามที่กล่าวไว้ข้างต้น
Matthias

ใน Windows คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม "SVN_EDITOR", "VISUAL" หรือ "EDITOR" ก่อนที่จะเรียกใช้คำสั่ง ตัวอย่าง:set SVN_EDITOR=notepad.exe
58

26

ใช่คุณทำได้ แต่ต้องเปิดใช้งานบนที่เก็บก่อน

ในที่เก็บในไดเร็กทอรี hooks คือไฟล์ที่เรียกว่า pre-revprop-change.tmpl มีความคิดเห็นสองสามหน้าเกี่ยวกับสิ่งที่ทำและตั้งค่าเพื่ออนุญาตให้เปลี่ยนแปลงคุณสมบัติบันทึกเท่านั้น ในการเปิดใช้งานให้เปลี่ยนชื่อไฟล์เป็น pre-revprop-change และทำให้สามารถเรียกใช้งานได้ (ฉันสมมติว่าเป็นการโค่นล้มที่โฮสต์ POSIX หากคุณใช้ Windows เป็นโฮสต์คุณอาจพบว่าข้อความนี้มีประโยชน์)

เมื่อที่เก็บอนุญาตแล้วคุณสามารถใช้ Tortoise เพื่อเปลี่ยนข้อความบันทึกสำหรับการคอมมิตจากเมนูคลิกขวาบนคอมมิตหรือคุณสามารถใช้บรรทัดคำสั่ง


+1 ข้อมูลเยี่ยมครับ. มันจะไม่ให้ฉันทำมันโดยไม่ต้องใช้ตะขอก่อนการเปลี่ยนแปลง ฉันจะต้องพอร์ต template bash script ไปที่ windows แต่ก็ไม่น่ามีปัญหา
Pekka

ฉันเพิ่มลิงก์ไปยังสคริปต์คำสั่งตัวอย่าง: svn.haxx.se/users/archive-2006-03/0107.shtml
Andrew Aylett


2

svn propedit -r N --revprop svn:log URL

URLด้านบนเป็นทางเลือกหากคุณอยู่ในไดเรกทอรีการทำงานแล้ว จากนั้นตัวแก้ไขจะปรากฏขึ้นเพื่อให้สามารถเปลี่ยนแปลงข้อความได้


1

เพิ่งเข้ามาในโพสต์นี้พร้อมกับปัญหาที่แน่นอนโดยใช้ Cortoise SVN สำหรับไคลเอนต์และ VisualSVN บนเซิร์ฟเวอร์ Windows

หากคุณมีข้อความแสดงข้อผิดพลาด"คำขอ DAV ล้มเหลว"ให้ดูคำตอบของ Andrew Aylettแล้วไปแก้ไข "pre-revprop-change.tmpl" ในไดเรกทอรีย่อยของ repository hooks

เมื่อเสร็จแล้วการกด "แก้ไขข้อความบันทึก" ในเมนูตามบริบทควรใช้งานได้ในที่สุด!

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