TortoiseSVN - แสดงการเปลี่ยนแปลงภายนอก


1

ถามในฟอรัม Tortoise แต่ยังไม่ได้รับคำตอบ: /

ฉันใช้ Tortoise SVN 1.6 มาระยะหนึ่งแล้วและตัดสินใจอัพเกรด อย่างไรก็ตามฉันสังเกตเห็นหลังจากการอัพเกรดว่าในขณะที่พยายามส่งการเปลี่ยนแปลงภายนอกจะไม่ปรากฏขึ้นเลย

ในรุ่น 1.6 ถ้าฉันทำการเปลี่ยนแปลงในไฟล์ภายนอกฉันไม่สามารถกระทำได้ แต่ฉันสามารถตรวจสอบการเปลี่ยนแปลงที่ฉันได้ทำไปแล้วและถ้าพวกเขาเป็นคนฉลาด หมายถึง - คัดลอกไฟล์ที่กำหนด / การเปลี่ยนแปลงไปยังไฟล์ที่เหมาะสมใน repo ภายนอกแล้วกระทำ repo ที่กำหนด)

วิธีการสรุป:

A - repo
-a.file
-B:external folder
--b.file - made changes
-C:external folder
--c.file - made changes

การพยายามคอมมิท A จะไม่แสดงการเปลี่ยนแปลงใน b.file หรือ c.file แม้ว่าโฟลเดอร์เหล่านี้จะมีการเปลี่ยนแปลงใน explorer ฉันยังสามารถคอมมิทเข้าไปได้ด้วยการคลิกขวาที่แต่ละโฟลเดอร์แล้วตรวจสอบการเปลี่ยนแปลง มันจะไม่เลวร้ายมากถ้าฉันมีหนึ่งภายนอกอย่างไรก็ตามการทำงานกับ 10> และการคลิกขวาที่แต่ละรายการจะกลายเป็นเรื่องน่ารำคาญ

มีตัวเลือกที่ฉันสามารถเปิดใช้งานเพื่อให้คอมมิททำงานในเวอร์ชัน 1.6 หรือไม่?

คำตอบ:


0

มันเป็นเพราะโฟลเดอร์ที่ใช้ร่วมกัน(B & C)จะหายไปเป็นส่วนหนึ่งของrepo รายการไดเรกทอรีของ A ควรเป็นดังนี้

เนื้อหาของ A
a.file -> file
B -> link to external folder
C -> link to external folder

คุณอาจสร้างลิงก์ภายนอกสำหรับ B ดังต่อไปนี้
A/B/b.file which links to <B_repo_path>/b.file
A/B/bdir1 which links to <B_repo_path>/bdir1
A/B/bdir2 which links to <B_repo_path>/bdir2

สิ่งที่ขาดหายไปนี่คือลิงค์ไปยังไดเรกทอรี B เอง ดังนั้นควรมีการเชื่อมโยงไปยัง

/A/B link to <B_repo_path>

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

ตัวอย่าง:

ในภาพต่อไปนี้มีลิงค์ไปยังไดเรกทอรีย่อยของโฟลเดอร์ที่ใช้ร่วมกัน แต่ไม่มีลิงก์จริงไปยังโฟลเดอร์ที่แชร์

ลิงค์ไปสู่ภายนอกใน repo SuiteShared

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

ป้อนคำอธิบายรูปภาพที่นี่


1
โฟลเดอร์ B & C svn:externalsมีการระบุไว้ภายใน เมื่อฉันอัปเดต repo A โฟลเดอร์ B และ C จะได้รับการอัปเดตและนั่นเป็นพฤติกรรมที่ฉันกำลังมองหา สิ่งที่ไม่ได้เกิดขึ้นก็คือเมื่อฉันเปลี่ยนบางสิ่งในโฟลเดอร์ข้างต้นไม่มีการเปลี่ยนแปลงใด ๆ ที่ปรากฏขึ้นในหน้าต่างการส่งมอบในขณะที่มันเคยชินกับรุ่น 1.6 ก่อนหน้านี้ ฉันต้องกำหนดโฟลเดอร์แต่ละโฟลเดอร์ให้กับ repos แยกต่างหากของมันเองซึ่งทำให้คอมมิทจะถูกแบ่งออกเป็นเวอร์ชั่นแยกกันซึ่งฉันไม่ต้องการ
eithed

ใช่ฉันมีปัญหาเดียวกันและแก้ไขมันโดยการเพิ่มโฟลเดอร์ B & C (แค่โฟลเดอร์ไม่ใช่เนื้อหาที่อยู่ภายใต้) เพื่อซื้อคืน A เมื่อคุณชำระเงิน repo A เป็นครั้งแรก B & C ก็เช็คเอาท์ด้วยเช่นกัน พวกเขาไม่ได้เป็นรุ่นย่อย แม้ว่าเนื้อหาของ B & C จะเป็นรุ่นย่อย แต่ไดเรกทอรีนั้นไม่ได้เป็นรุ่นย่อย คุณสามารถตรวจสอบให้แน่ใจได้อย่างง่ายดายว่าโดยดูที่คุณสมบัติไดเรกทอรีของ B & C
Manohar

ฉันไม่สามารถเพิ่มพวกเขาได้ - เมื่อคลิกที่ parent ของ B หรือ B และเลือกที่Addจะไม่รับอะไรเลย (ฉันไม่ได้รับอะไรเลยเมื่อพยายามคอมมิชชัน repo ทั้งหมด - เท่าที่ฉันเห็น มีการผูกมัดโฟลเดอร์ แต่การดูผ่านRepo-browserเป็นภายนอก) เพียงเพื่อให้แน่ใจว่าฉันได้ลบทั้งหมดsvn:ignoreและเอฟเฟกต์เหมือนกัน ฉันพยายามสร้างโฟลเดอร์ B ภายใน repo หลักด้วยตัวเองRepo-browserและฉันก็จัดการกับสถานการณ์ที่ฉันมีโฟลเดอร์ B สองโฟลเดอร์ (ฉันคิดว่าเป็นหลัก: B และ ext: B) การอัปเดตการตั้งค่าเช่นนั้นทำให้ฉันมีข้อขัดแย้ง
eithed

ไม่สามารถมีสองโฟลเดอร์ที่มีชื่อเดียวกันในไดเรกทอรีใน Windows หรือ Linux ไดเรกทอรีที่มีสองโฟลเดอร์ B คืออะไร? มันให้ความขัดแย้งกับคุณเป็นครั้งแรกและในครั้งต่อไปมันควรจะราบรื่น
โนฮาร์

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