ฉันพยายามย้ายโครงสร้างไดเรกทอรีจากที่หนึ่งไปอีกที่หนึ่งใน Subversion แต่ฉันได้รับItem '*' is out of date
ข้อผิดพลาด commit
ฉันได้ตรวจสอบเวอร์ชั่นล่าสุดแล้ว (เท่าที่ฉันจะบอกได้) svn st -u
ทำให้ไม่มีความแตกต่างนอกเหนือจากคำสั่ง mv
ฉันพยายามย้ายโครงสร้างไดเรกทอรีจากที่หนึ่งไปอีกที่หนึ่งใน Subversion แต่ฉันได้รับItem '*' is out of date
ข้อผิดพลาด commit
ฉันได้ตรวจสอบเวอร์ชั่นล่าสุดแล้ว (เท่าที่ฉันจะบอกได้) svn st -u
ทำให้ไม่มีความแตกต่างนอกเหนือจากคำสั่ง mv
คำตอบ:
บางครั้งฉันได้รับสิ่งนี้ด้วย TortoiseSVN บน windows ทางออกสำหรับฉันคือไปsvn update
ยังไดเรกทอรีแม้ว่าจะไม่มีการแก้ไขหรือดาวน์โหลด มันทำอะไรบางอย่างกับข้อมูลเมตาซึ่งแก้ไขได้อย่างน่าอัศจรรย์
หลังจากลองทุกสิ่งที่ชัดเจนและคำแนะนำอื่น ๆ ที่นี่โดยไม่มีโชค แต่อย่างใดการค้นหาของ Google นำไปสู่ลิงก์นี้ (ลิงก์ไม่ทำงานอีกต่อไป) - การโค่นล้มพูดว่า: ไฟล์หรือไดเรกทอรีของคุณอาจล้าสมัย
สั้น, เคล็ดลับคือการไปที่ไดเรกทอรี .svn (ในไดเรกทอรีที่มีไฟล์ที่กระทำผิด) และลบ "ทุก wcprops" แฟ้ม
ทำงานให้ฉันเมื่อไม่มีอะไรทำ
all-wcprops
ไฟล์อยู่ใน.sv
ไดเรกทอรี
ฉันเชื่อว่าปัญหานี้มาจากไฟล์. svn มันไม่ถูกต้องในผู้ปกครองเก่าผู้ปกครองใหม่หรือเก่า ฉันจะลองย้อนกลับไปที่จุดเริ่มต้นของคุณ ใช้การส่งออกเพื่อรับสำเนาใหม่ทั้งหมดของโฟลเดอร์ ย้ายสำเนาใหม่ทั้งหมดไปยังตำแหน่งใหม่และใช้การเพิ่มและลบเพื่อย้าย นั่นคือการทำสิ่งที่ SVN ทำด้วยตนเอง แต่มันอาจทำงานได้
ฉันพบว่าสิ่งนี้ใช้ได้กับฉัน:
svn update
svn resolved <dir>
svn commit
svn update
มาก่อนฉันมีสถานการณ์ที่ฉันต้องการหลีกเลี่ยงการอัปเดต (ดังนั้นฉันเพิ่งแก้ไขและกระทำและทำงาน)
พยายามอัปเดตสำเนาในเครื่องและเปลี่ยนรายการที่เป็นปัญหาและยังคงมีข้อผิดพลาด 'ล้าสมัย' สิ่งนี้ทำงานได้ด้วยเหตุผลบางประการ:
svn update --force /path/to/dir/or/file
ฉันเพิ่งมีปัญหาเดียวกันในหลาย ๆ โฟลเดอร์และนี่คือสิ่งที่ฉันได้กระทำ:
1) ในมุมมอง "ซิงโครไนซ์ทีม" คลิกขวาที่โฟลเดอร์> แทนที่และอัปเดต
2) ลบโฟลเดอร์อีกครั้ง
3) ยอมรับและมีความสุข
ขอบคุณ. ที่เพิ่งแก้ไขให้ฉัน อัปเดต svn - บังคับ / พา ธ ไปยังชื่อไฟล์ /
หากไฟล์ล่าสุดของคุณในไดเรกทอรีท้องถิ่นเหมือนกันจะไม่มีพรอมต์ หากไฟล์แตกต่างกันจะแจ้งให้ tf, mf ฯลฯ ... chosing mf (เต็มเต็ม) ยืนยันว่าไม่มีอะไรถูกเขียนทับและฉันสามารถกระทำได้เมื่อเสร็จสิ้น
Jay CompuMatter
ฉันจัดการเพื่อแก้ปัญหาโดยกดปุ่มอัปเดต
เช่นเดียวกับ @ Alexander-Klyubin แนะนำให้ทำการย้ายในพื้นที่เก็บข้อมูล มันจะเร็วขึ้นมากเช่นกันโดยเฉพาะถ้าคุณมีข้อมูลจำนวนมากที่จะย้ายเพราะคุณไม่ต้องถ่ายโอนข้อมูลทั้งหมดนั้นผ่านเครือข่ายอีกครั้ง
svn mv https://username@server/svn/old/ https://username@server/svn/new/
ควรทำงานได้ดี
svn up; svn mv
ชุดคำสั่งและสิ่งนี้ได้ทำอย่างดี ขอบคุณ.
ลบไฟล์หรือพา ธ ของคุณโดยใช้ก่อนดำเนินการคำสั่ง bk ของการเปลี่ยนแปลงของคุณ
sudo rm -r /path/to/dir/
หลัง:
svn up and commit or delete
คุณแน่ใจหรือว่าได้ตรวจสอบส่วนหัวไม่ใช่การแก้ไขที่ต่ำกว่า นอกจากนี้คุณได้ทำการอัปเดตเพื่อให้แน่ใจว่าคุณมีเวอร์ชั่นล่าสุดหรือไม่
มีการสนทนาเกี่ยวกับสิ่งนี้ใน http://svn.haxx.se/users/archive-2007-01/0170.shtml
ดำเนินการย้ายโดยตรงในที่เก็บ
มีอย่างน้อยหนึ่งสาเหตุของข้อความข้อผิดพลาด "ล้าสมัย" ในกรณีของฉันปัญหาคือ. svn / dir-props ซึ่งสร้างขึ้นโดยการเรียกใช้ "svn propset svn: ละเว้น -F .gitignore" สำหรับครั้งแรก. การลบ. svn / dir-props ดูเหมือนเป็นความคิดที่ไม่ดีและอาจทำให้เกิดข้อผิดพลาดอื่น ๆ ดังนั้นจึงควรใช้ "svn propdel" เพื่อทำความสะอาด "svn propset" ที่หลงทาง
# Normal state, works fine.
> svn commit -m"bump"
Sending eac_cpf.xsl
Transmitting file data .
Committed revision 509.
# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'
# Edit a file. Should have committed before the edit.
> svn commit -m"bump"
Sending .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating
# Delete the property.
> svn propdel svn:ignore .
property 'svn:ignore' deleted from '.'.
# Now the commit works fine.
> svn commit -m"bump"
Sending eac_cpf.xsl
Transmitting file data .
Committed revision 510.
หากคุณกำลังใช้สะพาน gitub svn อาจเป็นเพราะมีบางอย่างเปลี่ยนไปที่ด้านข้างของสิ่งที่ github วิธีแก้ปัญหานั้นง่ายคุณเพียงแค่เรียกใช้svn switch
ซึ่งจะช่วยให้สามารถค้นหาตัวเองได้อย่างถูกต้องจากนั้นอัปเดตและทุกอย่างจะทำงานได้ เพียงเรียกใช้สิ่งต่อไปนี้จากรากของเช็คเอาต์
svn info | grep Relative
svn switch path_from_previous_command
svn update
หรือ
svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update
พื้นฐานสำหรับการแก้ปัญหานี้มาจากบล็อกของ Lee Preimesberger
คุณกำลังจะย้ายมันโดยใช้svn mv
หรือเพียงแค่mv
? ฉันคิดว่าการใช้เพียงแค่mv
อาจทำให้เกิดปัญหานี้
ฉันย้าย dir ไปยังเครื่องของฉันเพื่อความปลอดภัยจากนั้น svn ลบไดเรคทอรี่โง่แล้วก็คอมมิท เมื่อฉันพยายามที่จะเพิ่มโฟลเดอร์จากเครื่องท้องถิ่นของฉันมันยังคงโยนข้อผิดพลาด (ย้าย SVN ทำสิ่งเดียวกันเมื่อฉันพยายามที่จะเปลี่ยนชื่อโฟลเดอร์) ดังนั้นฉันจึงย้อนกลับจากนั้นฉันทำ mkdir DIRNAME เพิ่มและมุ่งมั่น จากนั้นฉันก็เพิ่มเนื้อหาในและมุ่งมั่นและมันทำงานได้
ฉันสุ่มรับข้อผิดพลาดนี้หลังจากลบบางไดเรกทอรีที่มีไฟล์บางไฟล์ ฉันลบไดเรกทอรีผ่าน Netbeans และรู้ว่ามันไม่ได้ลบทิ้งจริงๆ ดูเหมือนว่าจะลบทุกอย่างภายในไดเรกทอรีและลบการอ้างอิงไปยังไดเรกทอรีภายใน Netbeans พวกเขายังคงมีอยู่ในระบบแฟ้มแม้ว่า ตรวจสอบให้แน่ใจว่าพวกเขาถูกลบออกจากระบบไฟล์และลองกระทำอีกครั้ง
หากเคยแก้ไขปัญหาที่คล้ายกันเพียงตรวจสอบสำเนาการทำงานใหม่และแทนที่ไดเรกทอรี. svn ทิ้งข้อผิดพลาดการกระทำด้วยการตรวจสอบใหม่นี้ เหตุผลในกรณีของฉันคือหลังจากที่ความเสียหายของที่เก็บและเรียกคืนจากการสำรองข้อมูลสำเนาการทำงานก็ชี้ไปที่การแก้ไขที่ไม่ได้อยู่ในพื้นที่เก็บข้อมูลที่เรียกคืน ยังมีข้อผิดพลาด "รายการล้าสมัย" ด้วย การอัปเดตสำเนาการทำงานก่อนที่จะส่งมอบไม่ได้แก้ปัญหานี้ แต่แทนที่. svn ตามที่อธิบายไว้ข้างต้น
ฉันทำสิ่งนี้และมันได้ผลสำหรับฉัน:
1. สำรองไฟล์ของคุณ คุณสามารถคัดลอกรหัสของคุณไปยังไฟล์ข้อความ
2. คลิกขวาที่ไฟล์ที่คุณต้องการส่ง >> ทีม >> แสดงประวัติ 3. ในแผง "แสดงประวัติ" คุณจะเห็นการแก้ไขทั้งหมดของไฟล์นั้น คลิกขวาที่การแก้ไขล่าสุดของไฟล์ >> รับการแก้ไข: มันจะแทนที่การเปลี่ยนแปลงในเครื่องของคุณ
4. รวมรหัสของคุณเข้ากับไฟล์ล่าสุดด้วยไฟล์สำรอง (ขั้นตอนที่ 1)
5. ซิงโครไนซ์และคอมมิตไฟล์ที่ผสานใหม่
อัปเกรดเซิร์ฟเวอร์และไคลเอนต์ของคุณเป็น Subversion 1.9
หากเกิดout of date
ข้อผิดพลาดแบบสุ่มเมื่อไม่ควรทำตามปกติเมื่อคุณเรียกใช้ยอมรับมันอาจบ่งบอกว่าคุณกำลังใช้ Subversion 1.7 หรือล้าสมัยและไม่รองรับไคลเอ็นต์หรือเซิร์ฟเวอร์เก่า
คุณควรอัพเกรดเซิร์ฟเวอร์และไคลเอนต์เพื่อแก้ไขปัญหา ดูที่เกี่ยวข้องการโค่นล้ม 1.9 หมายเหตุรีลีสรายการ: "ออกไปจากวันที่" ข้อผิดพลาดเมื่อการกระทำมากกว่า HTTPv1
ข้อผิดพลาดเป็นเพราะคุณไม่ได้อัปเดตไฟล์นั้นโดยเฉพาะอัปเดตก่อนจากนั้นมีเพียงคุณเท่านั้นที่สามารถส่งไฟล์ได้
พยายามทั้งหมดยกเว้นการเปลี่ยนแปลงใน. svn โดยตรง ไม่มีอะไรช่วยได้นี่เป็นวิธีแก้ปัญหาของฉัน
ใน Eclipse> หน้าต่าง> แสดงมุมมอง> ประวัติฉันเห็นว่าไฟล์นั้นไม่ได้อยู่ในการแก้ไขใหม่ล่าสุดแม้ว่าฉันจะทำ svn "Override & Update" / "Revert" / ลบไฟล์และเช็คเอาต์หลาย svn
ดังนั้นผมจึงไปแพคเกจ Explorer ที่> คลิกขวาที่ไฟล์> แทนที่ด้วย> ล่าสุดจากพื้นที่เก็บข้อมูล
อีกรูปแบบหนึ่งในมุมมองประวัติแสดงให้เห็นว่าขณะนี้ไฟล์อยู่ในการแก้ไขล่าสุด
"Clean Up" คุณจะได้รับการติดตาม
คลิกขวาที่โฟลเดอร์ svn และคลิก 'Clean Up' ทำเช่นนี้หากคุณได้รับข้อผิดพลาดนั้น
สิ่งนี้เกิดขึ้นเมื่อฉันอัพเดทสาขาของรีลีสก่อนหน้าด้วยไฟล์จาก trunk ฉันใช้ Windows Explorer เพื่อคัดลอกโฟลเดอร์จากโฟลเดอร์เช็คเอาต์ลำต้นและวางลงในมุมมอง Eclipse ของโฟลเดอร์เช็คเอาต์สาขา ขณะนี้ Windows Explorer ได้รับการกำหนดค่าไม่ให้แสดงไฟล์ "ซ่อน" ที่ขึ้นต้นด้วย "." ดังนั้นฉันจึงลืมไฟล์. svn ที่ไม่ถูกต้องทั้งหมดที่ถูกวางลงในโฟลเดอร์ชำระเงินสาขาของฉัน Doh!
ทางออกของฉันคือการระเบิดโครงการ Eclipse ที่เสียหายตรวจสอบอีกครั้งจากนั้นคัดลอกไฟล์ใหม่ด้วยความระมัดระวังยิ่งขึ้น ฉันเปลี่ยน Windows เพื่อแสดงไฟล์ "ซ่อน"
ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามส่งไฟล์บางไฟล์มีเพียงไฟล์ / โฟลเดอร์ที่ไม่มีอยู่ในสำเนาการทำงานของฉัน ฉันจริงๆไม่ต้องการที่จะผ่านความยุ่งยากในการย้ายไฟล์และตรวจสอบอีกครั้งในที่สุดฉันก็ลงเอยด้วยการแก้ไขไฟล์. svn / entry และลบการอ้างอิงไดเรกทอรีที่กระทำผิด
ในกรณีของฉันการลบเฉพาะรุ่นท้องถิ่นและการชำระเงินสำเนาใหม่เป็นวิธีแก้ปัญหา
ฉันเพิ่งได้รับข้อผิดพลาดนี้ สิ่งที่ฉันแนะนำคือคุณควรตรวจสอบเซิร์ฟเวอร์ก่อนว่ามีไฟล์ต้นฉบับอยู่หรือไม่ บางครั้งการเปลี่ยนแปลงที่ไม่ได้เกิดขึ้นในโฟลเดอร์ท้องถิ่นของคุณ หากนี่เป็นสถานการณ์ของคุณเพียงแค่ลบโฟลเดอร์และชำระเงินอีกครั้ง
ในการแก้ปัญหาฉันต้องคืนค่าไฟล์ที่มีปัญหาและอัปเดตสำเนาการทำงานของฉันและหลังจากนั้นฉันแก้ไขไฟล์อีกครั้งและหลังจากขั้นตอนเหล่านี้ข้อผิดพลาดไม่ได้เกิดขึ้นอีก
เพียงแค่ svn ขึ้นไปในบรรทัดคำสั่งหรือถ้าคุณอยู่ใน windows เลือกตัวเลือกการปรับปรุง svn
ฉันเพิ่งได้รับสิ่งนี้ขณะที่ฉันพยายามหาcommit
จากtrunk
ไดเรกทอรี การทำsvn update
จากtrunk
ไดเรกทอรีไม่สามารถแก้ไขข้อผิดพลาดได้ อย่างไรก็ตามการทำsvn update
จากไดเร็กทอรีพาเรนต์ (ซึ่งเป็นเจ้าของ.svn
ไดเร็กทอรี) ได้แก้ไขข้อผิดพลาด
เดาของฉันเกี่ยวกับสิ่งที่เกิดขึ้น (กรณีการใช้งานในหมู่อื่น ๆ อาจมีหลายสาเหตุสำหรับ "svn: E160024: ทรัพยากรล้าสมัยลองอัปเดต"): พร้อมtrunk
ด้วยมีbranches
ไดเรกทอรี ฉันดึงbranches/branch-1
เข้าmaster
จาก GitHub ทำsvn update
จากไดเรกทอรีแม่ (นั่นคือรากของสำเนาการทำงานของฉัน) แทนtrunk
ดูเหมือนว่าจะมีบางสิ่งบางอย่างที่ทำในนอกเหนือไปจากbranches
trunk
เมื่อฉันพยายามcommit
อีกครั้งไม่มีข้อผิดพลาด
อย่างไรก็ตามอย่างที่ฉันได้กล่าวไว้ข้างต้นนี่เป็นกรณีหนึ่งในหมู่คนอื่น ๆ
หมายเหตุด้านข้าง: ซึ่งแตกต่างจากสิ่งที่มีคนแนะนำฉันไม่เชื่อว่าเป็นความคิดที่ดีที่จะเล่นด้วยตนเองใน.svn
ไดเรกทอรี