คำเตือนไฟล์หายไปปรากฏขึ้นหลังจากอัพเกรดเป็น Xcode 4


166

ฉันเพิ่งอัพเกรดเป็น Xcode 4 (ซึ่งเป็นการอัพเกรดที่ยอดเยี่ยม) แต่ตอนนี้ฉันได้รับคำเตือนบางอย่างที่ฉันไม่เคยได้รับมาก่อน ฉันดูฟอรัมและโพสต์ SO อื่น ๆ แล้ว แต่ยังไม่เจอวิธีแก้ไข

คำเตือนที่ฉันได้รับคือคำเตือนระดับโครงการสำหรับไฟล์ที่หายไป ไฟล์ที่กำลังแสดงถูกลบออกจากมุมมองเนวิเกเตอร์โครงการ (เลือกที่จะลบออกจากระบบไฟล์ด้วย) อย่างไรก็ตามดูเหมือนว่าจะยังคงปรากฏเป็นลิงก์ไปยังโครงการอย่างใดแม้ว่าไฟล์จะไม่ปรากฏในนาวิเกเตอร์โครงการอีกต่อไป

ฉันได้ดูไปแล้วและไม่พบวิธีที่ฉันสามารถบอก Xcode ว่าไฟล์เหล่านี้หายไปแล้วหยุดให้คำเตือนแก่ฉัน นี่คือภาพหน้าจอที่ฉันได้รับใน Xcode4 แต่ไม่เคยมีใน Xcode 3

คำเตือนไฟล์ที่หายไป Xcode 4


ถ้าฉันเป็นคุณฉันจะนำเข้าไฟล์ของคุณไปยังโครงการของคุณแทนที่จะเก็บลิงค์ไว้ในดิสก์ของคุณ มันช่วยให้คุณประหยัดจากอาการปวดหัวหากคุณย้ายไฟล์ในภายหลัง
sudo rm -rf

คำตอบ:


297

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

มันง่ายกว่ามากในการเปิดคอนโซลเรียกดูโฟลเดอร์ของคุณ ("cd / pathToYourFolder") และพิมพ์คำสั่งต่อไปนี้:

svn delete nameOfMissingFile

หากชื่อไฟล์ที่หายไปของคุณมีอักขระ @ (เช่น: งานศิลปะเฉพาะของเรตินา) ให้ตรวจสอบว่าชื่อไฟล์นั้นสิ้นสุดด้วยสัญลักษณ์ @:

svn delete nameOfMissingFile@2x.png@

สำหรับที่เก็บ GIT:

git rm nameOfMissingFile


20
ฉันมีปัญหาเดียวกันและแก้ไขผ่านทางเทอร์มินัลโดยใช้:svn rm --force nameOfMissingFile
ReachWest

1
นี่เป็นคำตอบที่ดีกว่าคำตอบที่ถูกต้อง การลบโฟลเดอร์ SVN ออกจากโครงการภายใต้การควบคุม SVN อาจเป็นโลกของความเจ็บปวด ดีที่สุดที่จะใช้ SVN เพื่อแก้ปัญหา ฉันทำตามคำตอบนี้เพื่อแก้ไขปัญหาของตัวเองอย่างไรก็ตามฉันมี Cornerstone ที่หรูหรา แต่ก็ไม่เท่ห์ ขอบคุณ :)
jowie

1
ดูเหมือนจะไม่ได้ผลสำหรับฉัน ฉันจะเพิ่มไฟล์กลับแล้วลบออก แต่คำเตือนเดียวกันยังคงปรากฏในการสร้าง ฉันพยายามเพิ่มไฟล์กลับไปที่โครงการแล้วลบออก ยังคงเป็นปัญหาเดียวกัน
Yenyi

10
มันใช้งานได้สำหรับฉัน แต่ฉันต้องสร้างไฟล์จำลองก่อนที่ฉันจะลบหากใช้ svn ดังนั้นคุณต้องทำชื่อtouchOfMissingFileแล้วsvn ลบ nameOfMissingFile --force
Maciej Swic

9
นอกจากนี้ฉันต้องเลิกและฆ่า xcode เพื่อให้ปัญหาหายไป
Twilite

55

ใน XCode 4.2. + (อาจเป็น 4+) คุณสามารถหลีกเลี่ยงการทำงานด้วยตนเองและบรรทัดคำสั่ง:

  1. เลือก Project Navigator Project (คำสั่ง - 1)
  2. เลือกไฟล์ - การควบคุมแหล่งที่มา - เมนูกระทำ
  3. ในบานหน้าต่างด้านซ้ายด้านบนของคุณมีสามไอคอนเลือกหนึ่งตรงกลาง - มุมมองไฟล์
  4. คุณจะเห็นรายการไฟล์ที่หายไปทั้งหมด
  5. เลือกทั้งหมดและคลิกขวา - ยกเลิกการเปลี่ยนแปลง การดำเนินการนี้จะกู้คืนไฟล์ที่ถูกลบทั้งหมดจากเซิร์ฟเวอร์ SVN และวางไว้ในโฟลเดอร์ SVN ท้องถิ่นของคุณ
  6. ลากและวางไฟล์เหล่านั้นลงในโครงการ XCode (เลือก Sort-Date ที่ปรับเปลี่ยนใน Finder เพื่อค้นหาได้ง่าย)
  7. ลบไฟล์เหล่านั้นอย่างถูกต้องผ่าน XCode (เลือกไฟล์และเลือกคลิกขวาที่ลบ)
  8. กระทำโครงการ

และนั่นคือมัน :)

คำเตือนที่น่ารังเกียจเหล่านั้นหายไปหมดแล้ว!

นอกจากนี้สำหรับ Xcode 6+:หลังจากเลือก 'ไอคอนกลาง' มุมมองไฟล์ - คุณสามารถคลิกช่องทำเครื่องหมายทางด้านซ้ายและสิ่งนี้จะทำเครื่องหมายว่าถูกลบสำหรับ SVN เมื่อคุณยืนยันครั้งต่อไป!


1
ต้องการเพียงไม่เกินขั้นตอนที่ 5 ฉันไม่มีไฟล์ใน SVN
Darren Reely

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

50

ใน Xcode5 & Xcode6ขั้นตอนด้านล่างใช้ได้สำหรับฉัน

Xcode-> Preferences-> Source Control->uncheck Enable Source Control

แล้วก็

Xcode-> Preferences-> Source Control->check Enable Source Control


บน Xcode 8.3.2 สิ่งนี้ใช้งานได้ประมาณสิบนาทีแล้วคำเตือนทั้งหมดกลับมาทันที :(
Bob

27

มีบางอย่างที่เกี่ยวข้องกับ. svn โฟลเดอร์ที่ซ่อนอยู่ในโครงการของคุณ

ฉันแก้ไขปัญหานี้ได้โดยการแยกโครงการออกจาก svn

เปิดเทอร์มินัลแล้วพิมพ์คำสั่งต่อไปนี้:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

สิ่งนี้จะช่วยให้คุณดูโฟลเดอร์. svn ภายในโครงการของคุณ

ข ลบทุก ๆ โฟลเดอร์. svn ในโฟลเดอร์โครงการ / โฟลเดอร์ย่อย

ค. เปิดใช้งานไฟล์ที่ซ่อนอยู่อีกครั้ง:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

d ตอนนี้โครงการของคุณถูกแยกออกจาก svn และคุณจะไม่ได้รับปัญหาเกี่ยวกับบิลด์อีกต่อไป

อี เพิ่มโครงการของคุณอีกครั้งเพื่อ svn หรืออะไรก็ตาม

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


3
ไม่ใช่ความคิดที่ดีที่จะไปยุ่งกับโฟลเดอร์และไฟล์ SVN ที่ซ่อนอยู่คุณอาจจะยุ่งเหยิงกับ SVN ได้ ดีที่สุดในการใช้คำสั่ง svn delete เพื่อจัดระเบียบไฟล์ที่หายไป
jowie

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

ฉันแค่ "killall Finder" โดยเปิดใหม่ ปัญหาหายไปแล้ว ขอบคุณ
JHHoang


6

ฉันแก้ไขมันด้วยวิธีต่อไปนี้:

  1. ตรวจสอบพา ธ ไปยังไฟล์ที่หายไป
  2. สร้างไฟล์ที่หายไปในตำแหน่งที่เหมาะสมภายในไดเรกทอรีโครงการของคุณ
  3. เพิ่มลงในโครงการของคุณโดยใช้ "เพิ่มไฟล์ไปที่" โครงการ "" และสร้างการอ้างอิงเท่านั้น (อย่าคัดลอกไฟล์)
  4. คำเตือนควรหายไป ณ จุดนี้
  5. จากภายใน Xcode ลบไฟล์ที่ทำให้แน่ใจว่าคุณคลิก "ลบ" แทนค่าเริ่มต้น "ลบการอ้างอิงเท่านั้น"
  6. คุณทำเสร็จแล้ว

4

ฉันมีข้อผิดพลาดนั้นและไม่พบวิธีแก้ไขอื่นนอกจากสร้างไฟล์เปล่าบนตำแหน่งนั้นแล้วลบทิ้ง มันเกิดขึ้นกับไฟล์ที่ฉันลบจากโครงการและการทำความสะอาดการสร้างการลบไดเรกทอรี Derived Data ด้วยตนเองไม่ทำงานเช่นกัน ฉันเชื่อว่ามันเป็นข้อผิดพลาดและมันค่อนข้างเจ็บปวดหากเกิดขึ้นกับไฟล์มากกว่าสองสามไฟล์


เศร้าหวังว่าจะมีวิธีแก้ไขปัญหานี้ได้ง่ายขึ้น ฉันมีไฟล์ประมาณ 20 ไฟล์ดังนั้นการสร้างแล้วการลบจะค่อนข้างเจ็บปวด
Scott

4

ฉันยังมีปัญหานี้และในฐานะผู้ใช้ 151215 ได้อธิบายว่ามันเป็นเพราะโฟลเดอร์. svn

ฉันมีโฟลเดอร์. svn อันเก่าไม่ได้อยู่ในโครงการ แต่อยู่ในโฟลเดอร์หลักของโครงการ

โฟลเดอร์. svn ที่ละเมิดจะมีไฟล์รายการที่มีไฟล์ที่หายไปของคุณ ดังนั้นคุณสามารถใช้ Teminal และค้นหาสตริงชื่อไฟล์ที่ขาดหายไปเช่น grep -lir BagController.m yourRootDevDir / *

ง่ายกว่าการเปิดใช้งานไฟล์ที่ซ่อนอยู่ในตัวค้นหาเพียงใช้เทอร์มินัล cd ไปยังไดเรกทอรีที่เกี่ยวข้องและ mv .svn ~ / .Trash

หวังว่านี่จะช่วยได้!



3

ฉันใช้วิธีต่อไปนี้เพื่อจัดการกับปัญหา tha:

เรียกใช้เทอร์มินัลและซีดีไปยังไดเรกทอรีโครงการ (เช่น: cd /Users/Mauro/Src/Pippero-1.2/)

จากนั้นป้อนคำสั่งต่อไปนี้:

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

คำสั่งจะค้นหาไฟล์ซ้ำ ๆ (และโฟลเดอร์) ที่เรียกว่า. svn และลบทิ้ง


สิ่งนี้ไม่ได้ผลสำหรับฉัน แต่ไปที่แต่ละไดเรกทอรีและลบโฟลเดอร์. svn แต่ละรายการ ป๊อปใหญ่สำหรับคุณชายของฉัน!
gonzobrains

3

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

คุณสามารถปิดการรวมการควบคุมเวอร์ชันใน Xcode 4 ได้หรือไม่?

เห็นได้ชัดว่าอาจจะไม่เป็นจริงถ้ามีโครงการ Xcode อื่น ๆ ที่คุณไม่ต้องการที่จะใช้ SVN กับ


2

ฉันใช้ svn และจัดการเพื่อแก้ไขปัญหานี้ด้วย

svn delete pathToMissingFile

ซึ่งจะลบสำเนา svn โลคัลของไฟล์ที่หายไปรวมถึงสำเนาในที่เก็บรีโมต

หรือ

svn revert pathToMissingFile

ซึ่งจะยกเลิกการเปลี่ยนแปลงในไฟล์ที่หายไปซึ่งหมายถึงการวางไฟล์ที่หายไปกลับไปที่เดิม


1

ทั้งหมดข้างต้นไม่ได้ทำงานเพื่อแก้ไขปัญหาแบบเดียวกันกับที่ฉันมี ทำการค้นหาบางอย่างฉันเข้าใจว่าปัญหาที่ฉันมีเกี่ยวข้องกับความขัดแย้ง SVN

ฉันพบว่ามีข้อขัดแย้งในการใช้บรรทัดคำสั่ง:

svn status

จากนั้นไฟล์ที่ขัดแย้งทั้งหมดจะต้องได้รับการแก้ไข

svn resolved filename1 filename2 ...

เมื่อแก้ไขข้อขัดแย้งแล้วคำเตือนก็หายไปจาก Xcode




0

กด Cmd + 7 หลังจากสร้างและเลือกการดำเนินการสร้างล่าสุด มันดูเหมือน Xcode แบบเก่าที่ดีสักหน่อย? :) ป้อนคำอธิบายรูปภาพที่นี่


ใช่ดูเหมือนว่า XCode แบบเก่า แต่มันไม่สามารถแก้ปัญหาด้วย XCode ใหม่โดยบอกว่าฉันมีไฟล์ขาดหายไป ฉันชอบมุมมอง แต่ดูเหมือนว่ามันเป็นเพียงการปิดบังปัญหากับ XCode
สกอตต์

0

ในกรณีของฉัน

  1. ฉันเพียงแค่เปิด SvnX
  2. ไฟล์ที่หายไปทั้งหมดถูกทำเครื่องหมายเป็นสีแดง เลือกและลบทิ้ง
  3. จากนั้นคำเตือน Xcode ทั้งหมดก็หายไป

0

คำตอบโดย Alex แก้ไขปัญหาไฟล์ที่หายไปของฉัน

ฉันมีปัญหาอื่น (แม้ว่าจะไม่เกี่ยวข้องกับไฟล์ที่หายไป แต่ฉันรู้สึกว่านี่จะเป็นหัวข้อที่ดีกว่า)

  1. ฉันต้องการคัดลอกชุดภาพไปยังโครงการของฉัน
  2. ฉันเพิ่งสร้างกลุ่ม (แม้ว่าฉันรู้ว่ากลุ่มนั้นไม่ได้แมปไปยังโฟลเดอร์ที่มีอยู่จริง) และลากรูปภาพไปไว้ในกลุ่ม (เลือกตัวเลือก "คัดลอกไปที่ .. ")
  3. สถานะ SVN แสดงให้เห็นทั้งหมดใน "A"
  4. ตอนนี้เมื่อฉันเข้าสู่ระบบไฟล์จริงฉันพบว่าภาพทั้งหมดที่คัดลอกไปยังโฟลเดอร์รากของโครงการของฉัน เนื่องจากมันดูไม่ดีฉันจึงสร้างโฟลเดอร์ที่มีอยู่จริงภายในโฟลเดอร์รูปภาพในโครงการของฉันและคัดลอกรูปภาพที่เพิ่มทั้งหมดไปที่นั่น
  5. จากนั้น SVN จะแสดงไฟล์ทั้งหมดเป็นสีแดง
  6. ฉันลบการอ้างอิงของไฟล์สีแดงทั้งหมด
  7. ด้วยตัวเลือก "เพิ่มไฟล์" ฉันจึงเพิ่มรูปภาพจากโฟลเดอร์ที่สร้างขึ้นใหม่
  8. ตอนนี้ SVN ล้มเหลวในการแสดงสถานะของไฟล์ว่า "A" และไม่มีทางที่ฉันจะสามารถตรวจสอบได้
  9. พยายามทำหลายขั้นตอนเช่นกำจัดพวกมันเพิ่มอีกครั้งจากโฟลเดอร์อื่น ๆ แต่ก็ไม่มีโชค

ฉันแก้ไขสิ่งนี้โดยเข้าไปที่พื้นที่เก็บข้อมูลโดยตรงสร้างไดเรกทอรีใหม่ภายใต้รูปภาพเพื่อให้โฟลเดอร์ฟิสิคัลอยู่ในเซิร์ฟเวอร์ SVN

จากนั้นฉันก็ทำการอัปเดตของแหล่งที่มาและได้รับไดเรกทอรีที่สร้างขึ้นใหม่ภายในสำเนาการทำงานของฉัน

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

แค่อยากจะแบ่งปันเรื่องนี้ ..... เพราะใช้เวลามากจากฉัน

-anoop


ในกรณีนี้ไปที่ Terminal และไปที่รูทของโครงการของคุณ สร้างโฟลเดอร์ด้วย "svn mkdir name_of_the_folder" ลากและวางไฟล์ด้วย Finder จาก name_of_the_folder ในโครงการของคุณ (หรือโฟลเดอร์เพื่อเพิ่มไฟล์ทั้งหมดด้วยตนเอง) ปัญหาคือเมื่อคุณสร้างโฟลเดอร์ที่ไม่มีโฟลเดอร์ "svn mkdir" จะไม่ถูกเพิ่มไปยัง SVN
Alex

0

อย่าลบไฟล์โดยตรงในโฟลเดอร์. xcode ของคุณ ลบไฟล์จาก xcode project navigator (คลิกขวาที่ไฟล์นั้นและเลือกย้ายไปที่ถังขยะ)

ตอนนี้เพื่อล้างปัญหานี้เพิ่มไฟล์เดียวกันในตำแหน่งเดียวกัน และลบออกจากตัวนำทางโครงการ


0

ฉันไม่ต้องทำอะไรเลย ฉันยืนยันรหัสของฉันและผลักมันขึ้น ปิด XCODE ดึงมันลงมาอีกครั้งและทุกอย่างก็ใช้ได้


0

ข้อมูลทั่วไป:

ในกรณีของฉันมีการ Xcode โครงการที่เรียกว่าในเส้นทางโฟลเดอร์ต่อไปนี้Sample/folder1/folder2

มี.gitไฟล์อยู่ภายใน/folder1/folder2/Sample/ซึ่งคาดว่าจะเป็น

สาเหตุ:

มี.gitไฟล์อื่นในไดเรกทอรีหลัก ( /folder1) ซึ่งก่อให้เกิดปัญหา โฟลเดอร์อาจถูกลบทิ้งไว้ด้านหลัง.gitไฟล์

สารละลาย

rm -rf /folder1/.git

เงื่อนงำ

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

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