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


111
mark@mark-ubuntu:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

svn statบอกว่ามันไม่ได้อยู่ภายใต้การควบคุมเวอร์ชันดังนั้นฉันจึงพยายามเพิ่มมันแล้วมันก็บอกฉันว่าเป็น เมื่อฉันทำsvn ciมันจะไม่ได้รับ comitted และไม่ปรากฏขึ้นเมื่อฉันพยายามเรียกดูที่เก็บออนไลน์

ฉันจะให้มันเข้าร่วมได้อย่างไร?


3
โฟลเดอร์ "เติมข้อความอัตโนมัติ" มีไดเร็กทอรีย่อย ".svn" ที่เสียหรือไม่ คุณล้างข้อมูลด้วยหรือไม่? :)
bzlm

1
คุณลอง a: svn cleanup เพียงแค่แทงในที่มืดหรือไม่?
shaunhusain

ฉันพบปัญหานี้เมื่อฉันคัดลอกไดเรกทอรีเช็คอินไปยังโฟลเดอร์อื่นในโครงการของฉัน การลบ. svn ทำงานเก่า!
paulrehkugler

ฉันเพิ่มไฟล์อย่างจริงจัง: svn add --force /path/to/fileหรือถ้าคุณต้องการเพิ่มไดเร็กทอรีซ้ำ: svn add --depth infinity --force /path/to/directory.
joker

คำตอบ:


162

คัดลอกโฟลเดอร์ที่มีปัญหาไปยังไดเร็กทอรีสำรองและลบออกจากไดเร็กทอรีการทำงาน SVN ของคุณ อย่าลืมลบ.svnไดเรกทอรีที่ซ่อนอยู่ทั้งหมดออกจากโฟลเดอร์ที่คัดลอก

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

อัปเดต: อ้างความคิดเห็นโดย@Mark :

ไม่จำเป็นต้องย้ายโฟลเดอร์ไปมาเพียงแค่ลบ.svnโฟลเดอร์จากนั้น svn เพิ่มก็ใช้งานได้


52
ไม่จำเป็นต้องย้ายโฟลเดอร์ไปมาเพียงแค่ลบ.svnโฟลเดอร์จากนั้น svn เพิ่มก็ใช้งานได้
mpen

6
+1 สำหรับการทำให้วันของฉัน ;-) อย่างที่ Mark บอกสำหรับฉันมันเพียงพอแล้วที่จะลบไดเร็กทอรี. svn ภายในโฟลเดอร์ที่มีปัญหา
rturrado

23
ขอขอบคุณที่ระบุ SVN เป็น BS ที่สมบูรณ์
Steve K

1
ตอนนี้คุณมีเพียง. svn ในโฟลเดอร์ด้านบนคุณไม่สามารถทำ BS นี้ได้หากข้อมูลเมตาเสียหายคุณกำลังปิ้ง
Kalpesh Soni

ยกเลิกการเลือกโฟลเดอร์หลัก (แอป / เติมข้อความอัตโนมัติ) จากรายการหากได้รับการยืนยันแล้ว
khaled_webdev

20

ฉันมีปัญหาที่ดูเหมือนกันหลังจากเพิ่มแผนผังไดเร็กทอรีซึ่งมีไดเร็กทอรี. svn (เนื่องจากเป็น svn: external ในสภาพแวดล้อมต้นทาง): สถานะ svn บอกฉัน "?" แต่เมื่อพยายามเพิ่มมันเป็น "แล้ว ภายใต้การควบคุมเวอร์ชัน "

เนื่องจากไม่มีไดเรกทอรีเวอร์ชันอื่นอยู่ฉันจึงทำ

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;

เพื่อลบไดเร็กทอรี. svn ที่ไม่ถูกต้อง หลังจากทำสิ่งนี้ฉันสามารถเพิ่มไดเร็กทอรีใหม่ได้

หมายเหตุ :

  • หากมีไดเร็กทอรีเวอร์ชันอื่นอยู่ต้องเปลี่ยนนิพจน์ find ให้เฉพาะเจาะจงมากขึ้น
  • หากไม่แน่ใจก่อนอื่นให้เว้นส่วน "-exec ... " เพื่อดูว่าจะลบอะไร

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

ฉันขอแนะนำให้ใช้ 'ถ้าไม่แน่ใจ' ... -exec echo {} \;เพื่อที่คุณจะได้สวิตช์ -exec ของคุณทำงานได้ดีเช่นกัน
FlipMcF

ขอแนะนำให้เพิ่ม-type dการค้นหาด้วย เรียกฉันว่าจู้จี้จุกจิกจนกว่าคุณrm -rfจะไปไกลเกินไป นอกเหนือจาก nitpicks ของฉัน - ฉันคิดว่านี่เป็นคำตอบที่ถูกต้อง
FlipMcF

15

การเปลี่ยนแปลงในคำตอบของ @ gauss256 การลบ.svnได้ผลสำหรับฉัน:

rm -rf troublesome_folder/.svn
svn add troublesome_folder
svn commit

ก่อนการแก้ปัญหาของ Gauss ฉันลองใช้วิธีของ @ jwir3และไม่มีความสุข:

svn cleanup
svn cleanup *
svn cleanup troublesome_folder
svn add --force troublesome_folder
svn commit

14

(1) สิ่งนี้เพิ่งเกิดขึ้นกับฉันและฉันคิดว่ามันน่าสนใจว่ามันเกิดขึ้นได้อย่างไร โดยทั่วไปฉันได้คัดลอกโฟลเดอร์ไปยังตำแหน่งใหม่และแก้ไขโดยลืมไปว่ามันจะนำไดเรกทอรี. svn ที่ซ่อนอยู่ทั้งหมดมาด้วย เมื่อคุณรู้ว่ามันเกิดขึ้นได้อย่างไรมันจะง่ายกว่าที่จะหลีกเลี่ยงในอนาคต

(2) การลบไดเร็กทอรี. svn เป็นวิธีแก้ปัญหา แต่คุณต้องทำแบบวนซ้ำไปเรื่อย ๆ จนถึงแผนผังไดเร็กทอรี วิธีที่ง่ายที่สุดคือ:

find troublesome_folder -name .svn -exec rm -rf {} \;

3

คุณได้ลองทำการล้าง svn แล้วหรือยัง?


2
ฉันเจอปัญหานี้มากเกินไป จากนั้นลองแล้วsvn cleanupก็ไม่ได้ช่วยอะไร
imacake

3

ตรวจหาไดเร็กทอรี 'apps / autocomplete / .svn' ย้ายไปไว้ที่ใดที่หนึ่งที่ปลอดภัย (ในกรณีที่คุณต้องการกู้คืนเนื่องจากไม่ได้ผล) และดูว่าสามารถแก้ไขปัญหาได้หรือไม่


0

ฉันพบวิธีแก้ไขในกรณีที่คุณติดตั้งEclipse (Luna) ด้วย SVN Client JavaHL (JNI) 1.8.13 และ Tortoise :

เปิด Eclipse: ขั้นแรกให้ลองเพิ่มโมดูล project / maven ใน Version Control (Project -> Context Menu -> Team -> Add to Version Control)

คุณจะเห็นข้อความแสดงข้อผิดพลาด Eclipse ต่อไปนี้:

org.apache.subversion.javahl.ClientException: มีรายการอยู่แล้ว svn: 'PathToYouProject' อยู่ภายใต้การควบคุมเวอร์ชันแล้ว

หลังจากนั้นคุณต้องเปิดไดเร็กทอรีพื้นที่ทำงานของคุณใน explorer ของคุณเลือกโครงการของคุณและแก้ไขผ่าน Tortoise (Project -> Context Menu -> TortoiseSVN -> Resolve)

คุณจะเห็นข้อความโต้ตอบต่อไปนี้: " รายการไฟล์ว่างเปล่า "

กดยกเลิกและรีเฟรชโปรเจ็กต์ใน Eclipse โครงการของคุณควรอยู่ภายใต้การควบคุมเวอร์ชันอีกครั้ง

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


0

สำหรับฉันทำการอัปเดต svn ตามด้วย svn คอมมิตใช้งานได้ ไม่มีโฟลเดอร์. svn อยู่ในโฟลเดอร์ซึ่งไม่สามารถเพิ่มได้

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