Pertanyaan Subversion: Bisakah saya membayar, memodifikasi, dan kemudian menjadikannya cabang?


Saya melakukan checkout dari bagasi saya ke DIR lokal dan membuat banyak perubahan lokal di sana. Sekarang saya tidak ingin mengembalikannya ke bagasi, tetapi saya lebih suka membuat cabang dari versi lokal ini. Apakah itu mungkin?

Bisakah saya menyalin batang ke cabang, dan kemudian cd DIR dan svn switch ke cabang?

MEMPERBARUI: Terima kasih atas jawabannya, itu berhasil! Untuk meringkas langkah-langkahnya:

  • cd DIR
  • svn copy . new-branch-URL
  • svn switch new-branch-URL .

(perhatikan titik-titik)


76
2017-08-20 21:02


asal


Jawaban:


Menurut baris perintahnya membantu salinan svn dapat menyalin dari direktori ke URL repositori. Jadi Anda harus dapat menyalin copy pekerjaan Anda ke cabang, misalnya:

svn copy working_directory url_to_branch

38
2017-08-20 21:09



Buku SVN (http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create) tidak merekomendasikan membuat cabang dari copy pekerjaan lokal.

Meskipun juga memungkinkan untuk membuat cabang dengan menggunakan svn copy untuk menduplikasi sebuah direktori dalam copy pekerjaan, teknik ini tidak dianjurkan. Ini bisa sangat lambat, sebenarnya! Menyalin direktori di sisi klien adalah operasi linear-waktu, di mana sebenarnya harus menduplikasi setiap file dan subdirektori dalam direktori copy yang berfungsi pada disk lokal.

Sebagai gantinya, buat cabang terlebih dahulu dan kemudian gunakan svn switch perintah sehingga Anda dapat melakukan perubahan Anda. Jika copy pekerjaan Anda sudah kadaluarsa dengan trunk, tambahkan "@REV" ke URL sumber di mana "REV" adalah revisi copy pekerjaan Anda yang dilaporkan oleh svn info.

Menyalin direktori di server, bagaimanapun, adalah operasi waktu konstan, dan itu cara kebanyakan orang membuat cabang.

$ svn copy http://svn.example.com/repos/calc/trunk \
           http://svn.example.com/repos/calc/branches/my-calc-branch \
      -m "Creating a private branch of /calc/trunk."

50
2017-09-20 02:15



Dalam klien SVN saya: TortoiseSVN cukup untuk:

  • klik kanan pada direktori teratas yang ingin saya cabangkan
  • di "To URL" pilih direktori cabang di repositori Anda
  • dalam bingkai "Buat salinan di repositori dari:" pilih "copy Pekerjaan"

selesai :)

Ini seperti menyalin versi lokal ke url repositori yang ditentukan.


9
2017-08-20 21:13



Ya, Anda bisa melakukan ini dengan Baris perintah SVN sebaik tortoiseSVN.

Anda harus menentukan SVN workingcopy Anda sebagai src dan cabang baru Anda sebagai tujuan dari

svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>

perintah.

Dalam TortoiseSVN, cukup arahkan ke copy pekerjaan Anda, pilih "Cabang / tag" dari contextmenu dan pilih "copy Pekerjaan" di bagian "Buat salinan di repositori dari:"

Perhatikan bahwa itu bukan ide yang baik (untuk alasan ketertelusuran) untuk membuat tag sedemikian rupa, tetapi untuk cabang itu baik-baik saja.


1
2017-08-21 00:22