การหลีกเลี่ยง“ ทรัพยากรไม่สอดคล้องกับระบบไฟล์”


267

ฉันพัฒนาโค้ด Java ด้วย Eclipse และได้รับข้อความนี้เป็นประจำ:

รีซอร์สไม่ซิงค์กับระบบไฟล์

คลิกขวา> รีเฟรชจะล้างสิ่งนี้เสมอ

แต่ทำไม Eclipse ไม่สามารถรีเฟรชอัตโนมัติเมื่อพบเงื่อนไขนี้? มีบางกรณีที่คุณต้องการให้ทรัพยากรไม่ซิงค์กันหรือไม่

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

อัปเดต (2012-06-25): อัปเดตล่าสุดของฉัน (เวอร์ชัน: Indigo Release Build id: 20110615-0604) ไม่แสดงการตั้งค่า - ทั่วไป - พื้นที่ทำงาน - รีเฟรชโดยอัตโนมัติมีตัวเลือก "รีเฟรชเมื่อเข้าถึง" - ฉันควรใช้สิ่งนี้หรือไม่


ทำไมคุณได้รับข้อความ คุณอาจสูญเสียงานถ้าไม่ระวัง
Thorbjørn Ravn Andersen

1
ฉันได้รับข้อความนี้เสมอเมื่อฉันค้นหาเวิร์กสเปซเนื่องจากโปรเจ็กต์เซิร์ฟเวอร์ (ในเครื่องมือของเว็บ) มีไฟล์บันทึกที่อัปเดตอยู่นอกคราส จนถึงตอนนี้ฉันยังไม่พบวิธีแก้ปัญหาใด ๆ นอกเหนือจากรีเฟรชโดยอัตโนมัติ แต่นั่นทำให้ปัญหาอื่น ๆ (โดยเฉพาะ: เมื่อบาง Ant build ทำงาน Eclipse จะรีเฟรช Ant ไปครึ่งทางและสร้างสิ่งต่าง ๆ ขึ้นมา)
Stijn de Witt

บางทีแค่เลียขวาในโครงการจากนั้นเลือก "รีเฟรช"?
Junchen Liu

คำถาม Silly: ทำไม "สำเนาพิเศษ" ของภาระหน้าที่ของทรัพยากรคืออะไร? ทุกคนต้องการสิ่งนี้อย่างแน่นอนด้วยโอกาสที่จะได้ "หลุดพ้น" หรือไม่
nsandersen

คำตอบ:


322

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

การกำหนดค่าตามความชอบของ Eclipse "รีเฟรชโดยใช้ native hooks or polling" - สกรีนช็อต

เหตุผลเดียวที่ฉันคิดได้ว่าทำไมค่านี้ไม่เปิดใช้งานโดยค่าเริ่มต้นนั้นเกี่ยวข้องกับประสิทธิภาพ

ตัวอย่างเช่นการรีเฟรชโฟลเดอร์ซอร์สโดยอัตโนมัติอาจทริกเกอร์การสร้างเวิร์กสเปซ บางทีบางคนต้องการควบคุมสิ่งนี้

นอกจากนี้ยังมีบทความในไซต์ Eclipseเกี่ยวกับการรีเฟรชอัตโนมัติ

โดยพื้นฐานแล้วไม่มีทริกเกอร์ภายนอกที่แจ้ง Eclipse ของไฟล์ที่เปลี่ยนแปลงนอกเวิร์กสเปซ Eclipse ค่อนข้างใช้เธรดพื้นหลังเพื่อตรวจสอบการเปลี่ยนแปลงไฟล์ที่อาจนำไปสู่ปัญหาด้านประสิทธิภาพของเวิร์กสเปซขนาดใหญ่


+1 สิ่งนี้เกิดขึ้นเฉพาะในช่วงนี้หรือไม่? หรือมันจะเกิดขึ้นพอที่จะส่งผลกระทบต่อฉันที่อื่น?
peter.murray.rust

1
ฉันมีค่ากำหนด - ทั่วไป - พื้นที่ทำงาน - รีเฟรชโดยอัตโนมัติ มันเหมือนกันหรือไม่
peter.murray.rust

1
มีวิธีใดบ้างที่จะยอมรับการเปลี่ยนแปลงจากระบบไฟล์โดยอัตโนมัติสำหรับหน้าต่างแก้ไขแบบเปิดที่ไม่มีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก
Leopd


14
ตอนนี้ดูเหมือนจะถูกเรียกว่า "รีเฟรชโดยใช้ native hooks หรือ polling" (Indigo SR1)
Oliver Bock

37

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


20
OP กล่าวว่าในคำถามของเขา "'รีเฟรช' จะล้างสิ่งนี้เสมอ" ปัญหาคือว่ามันน่ารำคาญอย่างเหลือเชื่อเมื่อทำงานกับโครงการที่ซับซ้อนหรือร่วมกับเครื่องมือภายนอก Eclipse ที่มีการเปลี่ยนแปลงระบบไฟล์
ryanbrainard


12

สำหรับเวอร์ชั่นอินดิโก้ใหม่การตั้งค่าจะเปลี่ยนเป็น "Refresh on access" และด้วยคำอธิบายรายละเอียด: รีเฟรชการเปลี่ยนแปลงพื้นที่ทำงานภายนอกโดยอัตโนมัติในการเข้าถึงผ่านพื้นที่ทำงาน

เนื่องจาก“ ทรัพยากรไม่สอดคล้องกับระบบแฟ้ม” ปัญหานี้เกิดขึ้นเมื่อฉันใช้พื้นที่ทำงานภายนอกดังนั้นหลังจากฉันเลือกตัวเลือกนี้แล้วปัญหาจะได้รับการแก้ไข


1
นี่เป็นการกำจัดข้อความ ขอบคุณ
lsaffie

5

สิ่งนี้เกิดขึ้นกับฉันตลอดเวลา

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

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

มีสองสิ่งที่คุณอาจลองทำ ก่อนอื่นให้ไปที่หน้าต่าง: การตั้งค่าพื้นที่ทำงานและเปิดใช้งาน "รีเฟรชอัตโนมัติ" ในทางทฤษฎีสิ่งนี้ควรแก้ไขปัญหา แต่สำหรับฉันมันไม่ได้

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

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


หลังจากนั้นการนำเข้าของฉันบางส่วนก็เสียหายหลังจากนี้ แต่การจัดระเบียบการนำเข้าอย่างรวดเร็วก็แก้ไขได้เช่นกัน
z0r

ฉันต้องทำสิ่งนี้ (เพิกเฉยต่อข้อผิดพลาดและลองอีกครั้ง) เมื่อเพิ่งย้ายคลาสไปยังแพ็คเกจใหม่
z0r

1

หากสิ่งนี้เกิดขึ้นพยายามลบโฟลเดอร์ (บน * ระวัง) และรีเฟรชไม่ช่วยเปิดเทอร์มินัลและค้นหา symlink ด้านล่างโฟลเดอร์ที่คุณพยายามลบและลบออกด้วยตนเอง นี่เป็นการแก้ไขปัญหาของฉัน


1

เมื่อคุณเปิดเวิร์กสเปซ Eclipse จากภายในมุมมองที่ชัดเจนและพยายามเปลี่ยนชื่อโครงการคุณมักจะได้รับคำเตือนป๊อปอัพ ... "ทรัพยากร 'โครงการ' ไม่ซิงค์กับระบบไฟล์" หากการรีเฟรชโครงการไม่สามารถแก้ปัญหาได้ให้ทำวิธีแก้ปัญหาต่อไปนี้: เปิดพื้นที่ทำงานโดยไม่มีมุมมอง b เลือกโครงการใน Project Explorer c ClearCase -> เชื่อมโยงโครงการ (โครงการควรมีลักษณะเหมือนโครงการ []) d คลิกขวาที่โครงการ -> รีเฟรช (โฟลเดอร์ย่อย vob ควรจะว่างเปล่า) e. คลิกขวาที่โครงการ -> เปลี่ยนชื่อ ... f. ป้อนชื่อใหม่

ตอนนี้คุณสามารถปิดพื้นที่ทำงานเปิดใหม่อีกครั้งในมุมมองและรีเฟรชโครงการ คุณอาจแยกโครงการออกหากคุณต้องการให้โครงการไม่เชื่อมโยงกับ vob


Clearcase ขโมยสุนัขของฉัน
Dominic Cerisano

1

คำใบ้เล็กน้อย ข้อความมักจะปรากฏขึ้นระหว่างการเปลี่ยนชื่อ วิธีแก้ปัญหาด่วนสำหรับฉันคือกดCtrl-Y(ทำซ้ำลัด) หลังจากยืนยันข้อความ ใช้งานได้เฉพาะเมื่อการเปลี่ยนชื่อมีผลกับไฟล์เดียว


อะไรCtrl-Yทำอย่างไร
z0r

1
Ctrl-Y คือ "ทำซ้ำ" ในกรณีนี้คุณเปลี่ยนชื่อบางสิ่งจากนั้น eclipse จะพบปัญหาและเลิกทำการเปลี่ยนชื่อ การกด Ctrl-Y เพื่อกู้คืนความพยายามในการเปลี่ยนชื่อ
wathson

ฉันเข้าใจแล้ว ไม่ได้อยู่ใน Ubuntu Ctrl-Shift-Zมันเป็น ลองเพิ่มคำอธิบายว่าทำไมคุณCtrl-Yถึงกดคำตอบ :)
z0r

1

หากคุณเป็นผู้ใช้ Eclipse ปกติมากกว่าที่คุณอาจได้รับข้อผิดพลาดนี้หลายครั้ง ข้อผิดพลาดเพียงแค่บอกว่า“ คุณได้ทำการเปลี่ยนแปลงไฟล์ในพื้นที่ทำงานของคุณจากนอกคราส” ทางออกที่ง่ายที่สุดคือเลือกโครงการและกด F5 (คลิกขวา -> รีเฟรช)

หากคุณต้องการคำอธิบายเพิ่มเติมคุณสามารถอ่านได้จากเว็บไซต์นี้


0

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

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