คุณจะย้ายไฟล์ได้อย่างไร


219

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

(กลยุทธ์ปัจจุบันของฉันคือการคัดลอกไฟล์ไปยังโฟลเดอร์ใหม่และตรวจสอบในแล้วลบไฟล์ออกจากโฟลเดอร์ปัจจุบัน)

คำตอบ:


95

การโค่นล้มมีการสนับสนุนพื้นเมืองสำหรับการย้ายไฟล์

svn move SOURCE DESTINATION

ดูวิธีใช้ออนไลน์ (svn ช่วยย้าย) สำหรับข้อมูลเพิ่มเติม


หรืออีกวิธีที่จะบอกว่า: svn move <current path/filename> <destination path/filename>
Joe

313

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

(โปรดทราบว่ารายการ SVN ในภาพต่อไปนี้จะปรากฏขึ้นเฉพาะเมื่อมีการเพิ่มโฟลเดอร์ปลายทางไปยังที่เก็บแล้ว)

เมนูย้ายเต่า

นอกจากนี้คุณยังสามารถทำการย้ายผ่าน Repo Browser (ส่วน5.23. Repository Browser ของวิธีใช้)


เมื่อฉันไฮไลต์ไฟล์ทั้งหมดของฉันลากไปทางขวาเมนู explorer ของ windows ทั่วไปจะปรากฏขึ้น ให้ฉันเลือก "ย้าย" แต่ไม่ใช่ตัวเลือก SVN ดังนั้นฉันจึงไม่แน่ใจว่ามีอะไรเกิดขึ้น เมื่อฉันตรวจสอบเพื่อดูว่ามีการดัดแปลงหรือไม่มันบอกว่ามีการลบไฟล์ 300 ไฟล์และไม่ใช่รุ่นที่ 300 ดูเหมือนว่ามันจะทำงานไม่ถูกต้อง ฉันกลัวที่จะกระทำโดยไม่ทราบว่านี่เป็นวิธีที่ควรจะทำงานหรือไม่
Joe Phillips

48
ฉันเพิ่งรู้ว่ามันอาจจะไม่ได้ผลเพราะฉันยังไม่ได้เพิ่ม / คอมมิชชันไดเรกทอรีใหม่
Joe Phillips

ฉันรู้ว่านี่คือปีต่อมา - แต่ความเห็นของโจเป็นสิ่งสำคัญ ฉันก็ต้องดิ้นรนกับเรื่องนี้เช่นกัน - ฉันมองข้ามโน้ตตัวเล็ก ๆ นั้นในคำตอบ โฟลเดอร์ปลายทางจะต้องอยู่ภายใต้การควบคุม SVN มิฉะนั้นจะไม่สามารถใช้งานได้ โชคดีที่ SVN อนุญาตให้เพิ่มโฟลเดอร์ว่างได้ หลังจากวางโฟลเดอร์ภายใต้การควบคุม SVN แล้วการลากเมาส์ขวาจะทำงานตามที่อธิบายไว้ข้างต้น มิฉะนั้นจะแสดงเมนู "คัดลอกที่นี่ / ย้ายที่นี่ / ยกเลิก" ของ Windows ทั่วไป (เช่นตัวเลือก SVN ขาดหายไป)
ripvlan

มันสมบูรณ์แบบ ฉันมีปัญหาในการย้ายไฟล์มากกว่า 1,500 ไฟล์ในคราวเดียว การย้ายไดเรกทอรีครั้งละหนึ่งรายการดูเหมือนว่าจะกำจัดปัญหานี้ไปแล้ว
Michael Murphy

80

ด้วย TortoiseSVN ฉันเพิ่งย้ายไฟล์บนดิสก์

เมื่อฉันเข้ามายอมรับการเปลี่ยนแปลงของฉันฉันเลือกไฟล์ที่หายไปและไฟล์ใหม่และเลือก " ย้ายการซ่อมแซม " จากเมนูคลิกขวา:

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

ซึ่งหมายความว่าฉันสามารถปล่อยให้ IDE ของฉันย้ายไฟล์ไปรอบ ๆ และใช้เครื่องมือการปรับโครงสร้างใหม่โดยไม่เสียประวัติ


3
นี่เป็นวิธีที่ฉันต้องการย้ายไฟล์ตอนนี้ หนึ่งคำเตือน; ทำ <20 ไฟล์ในแต่ละครั้งระหว่างการกระทำมิฉะนั้นอาจเป็นเวลานานมากที่จะหาไฟล์ที่เกี่ยวข้องกัน
DarrenMB

@DarrenMB ถูกต้อง: ฉันกำลังจะย้ายโครงการ Android จาก Eclipse ไปยัง Android Studio ต้องย้ายไฟล์ทั้งหมด วิธีนี้ไม่ใช่วิธีที่ฉันต้องการใช้ที่นี่
Bondax

@Bondax ใช่สำหรับการย้ายข้อมูลของโครงการทั้งหมดคุณควรทำการย้ายจากภายใน SVN ซึ่งควรเป็นสิ่งที่คุณทำในบางครั้ง ฉันพบสิ่งนี้เป็นวิธีที่ดีกว่าสำหรับการย้ายไฟล์โดยนักพัฒนาส่วนใหญ่ระหว่างโครงการ
Keith

1
ฉันไม่ได้มี Move Move เช่นกันโดยใช้เต่า SVN 1.9.4
Mark Patterson

@ Mark Patterson: ฉันเห็นตัวเลือกและฉันก็อยู่ที่ 1.9.4 (TortoiseSVN 1.9.4, Build 27285, และ Subversion 1.9.4, -release) ฉันไม่คิดว่าปัญหาของคุณเป็นรุ่นที่เกี่ยวข้อง ... นี่คือเอกสารอย่างเป็นทางการของคุณลักษณะนี้: tortoisesvn.net/repairmoves.html
Yosko

37

ใน TortoiseSVN คลิกขวาที่ใดก็ได้แล้วไปที่ TortoiseSVN> Repo Browser เปิดที่เก็บ

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


22

ใช้ TortoiseSVN ฉันเพียงคลิกขวาและลากโฟลเดอร์จากที่หนึ่งไปยังอีกที่หนึ่ง เมื่อคุณปล่อยคลิกขวาคุณจะมีตัวเลือก "SVN Move Version File" อย่างไรก็ตามฉันเชื่อว่า SVN ไม่ได้ทำอะไร "แฟนซี" ที่นั่น แต่เพียงแค่ลบไฟล์ในตำแหน่งก่อนหน้าและเพิ่มไปยังตำแหน่งใหม่


18

สำหรับลูกค้า TortoiseSVN:

  1. เลือกไฟล์ที่คุณต้องการย้าย
  2. ขวาคลิกแล้วลากไฟล์ไปยังโฟลเดอร์ที่คุณต้องการย้ายไฟล์ไปที่
  3. หน้าต่างจะป๊อปอัปหลังจากที่คุณปล่อยการลากและวางบนโฟลเดอร์ คลิก"รายการเวอร์ชัน SVN Move ที่นี่" ,
  4. หลังจากที่คุณคลิกด้านบนกล่องข้อความการกระทำหน้าต่างจะปรากฏขึ้น ป้อนข้อความและส่ง

ตอนนี้คุณทำเสร็จแล้ว


8

ตัดไฟล์ผ่านทางเมนูบริบทของระบบปฏิบัติการตามปกติแล้วแทนที่จะวางปกติคลิกขวาเพื่อนำเมนูบริบทจากนั้นเลือกTortoiseSVN -> Paste(ให้แน่ใจว่าคุณส่งจากรูทเพื่อรวมไฟล์ทั้งเก่าและใหม่ในคอมมิท)


4

ฉันคิดว่าในเบราว์เซอร์ svn ใน tortoisesvn คุณสามารถลากมันจากที่หนึ่งไปยังอีกที่หนึ่ง


2

เนื่องจากคุณใช้ Tortoise คุณอาจต้องการลองลิงค์นี้ใน LosTechies มันควรจะเป็นสิ่งที่คุณกำลังมองหา

http://www.lostechies.com/blogs/joshua_lockwood/archive/2007/09/12/subversion-tip-of-the-day-moving-files.aspx


3
เนื่องจากลิงก์นั้นอาจเสียหายคุณอาจต้องการคัดลอกข้อมูลที่เกี่ยวข้องไปยังคำตอบของคุณ
Cees Timmerman

3
... และลิงค์นั้นก็พัง จุดและกรณี
Stuart.Sklinar

1

หากฉันไม่ผิดที่เริ่มต้นจากรุ่น 1.5 SVN สามารถติดตามไฟล์ \ files ที่ถูกย้าย ใน TortoiseSVN การใช้งานสามารถย้ายไฟล์ผ่านการลากและวาง


1

อาจถูกเรียกว่า "เปลี่ยนชื่อ" โดยเต่า แต่การย้าย svn เป็นคำสั่งในไคลเอนต์ svn barebones


คำตอบที่ง่ายและแม่นยำที่สุดคือคำตอบเดียว! การใช้ TortoiseSVN การย้ายไฟล์ทำได้ด้วยการคลิกขวา> เปลี่ยนชื่อ แค่นั้นแหละ.
RoeeK

1

ถ่ายโอนไฟล์โดยใช้ TortoiseSVN:

ขั้นตอน: 1 โปรดเลือกไฟล์ที่คุณต้องการย้ายคลิกขวาแล้วลากไฟล์ไปยังโฟลเดอร์ที่คุณย้ายไฟล์ไปที่หน้าต่างจะปรากฎขึ้นหลังจากทำตามคำแนะนำด้านล่าง

ตัวเลือก SVN

ขั้นตอนที่ 2: หลังจากที่คุณคลิกด้านบนยอมรับไฟล์ดังกล่าวด้านล่าง

สัญญา SVN


0

หากคุณย้ายโฟลเดอร์ผ่าน Repository Browser แสดงว่าไม่มีตัวเลือกการย้ายเมื่อคลิกขวา; วิธีเดียวคือการลากและวาง

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