Pertanyaan Cara mengatur properti Subversion dengan git-svn


Apakah ada cara untuk mengatur properti subversi pada repositori git yang dibuat oleh git-svn?

Dalam kasus saya, saya ingin mengedit versi svn:external, svn:ignore dan svn:executable.

Namun, satu-satunya cara untuk melakukannya tampaknya melibatkan check-out dengan klien subversi. Apakah ada cara untuk mengedit properti svn tanpa harus memeriksa repositori dua kali (satu kali untuk git dan satu kali dengan svn untuk properti)?


32
2017-08-13 11:36


asal


Jawaban:


git-svn tidak mendukung properti Subversion. Ketika saya mengalami masalah ini, saya biasanya memiliki dua cek.

Ini disebutkan dalam git-svn dokumentasi di bawah BUGS:

Kami mengabaikan semua properti SVN kecuali svn: executable. Semua properti yang tidak tertangani akan dicatat $GIT_DIR/svn/<refname>/unhandled.log


17
2017-08-13 11:46



Catatan: git 2.3.0 (Februari 2015) mendukung proset dengan git svn.
Lihat komit 83c9433 oleh Alfred Perlstein (splbio):

git-svn: mendukung git-svn propset

Perubahan ini memungkinkan git-svn untuk mendukung pengaturan properti subversi.

Ini berguna untuk mengatur properti secara manual saat melakukan repo subversion itu membutuhkan properti yang akan diatur tanpa perlu memindahkan changeset Anda untuk memisahkan checkout subversi untuk mengatur alat peraga.

Ada nit yang harus ditunjukkan: kode tidak mendukung penambahan properti kecuali ada juga perubahan konten ke file juga.
  Ini ditunjukkan dalam testcase.

Jadi, seperti yang terlihat di t/t9148-git-svn-propset.sh, ini sekarang berfungsi:

git svn propset "$1" "$2" "$file" 
# like
git svn propset "svn:keywords" "FreeBSD=%H" "foo"

19
2018-02-01 21:21



Mulai bekerja pada tambalan untuk mendukung git svn propset sini: git svn dukungan propset


5
2017-09-10 16:01



Itu mungkin, cukup tiru penyimpanan SVN Anda dengan SmartGit. Ini menerjemahkan svn: executable, svn: externals dan svn: ignore to executable, .gitsvnextmodules dan .gitignore. Jadi Anda dapat memodifikasi dan mendorong kembali yang akan menghasilkan modifikasi properti yang sesuai.

Jika Anda memiliki akses ke server SVN Anda, Anda dapat menginstal SubGit ke dalamnya. Ini menerjemahkan svn: executable dan svn: ignore pada sisi server menyediakan antarmuka Git ke repositori SVN Anda.


3
2018-05-13 00:26



Anda juga bisa digunakan svnmucc, jika Anda tidak ingin memiliki keseluruhan checkout svn hanya untuk mengatur props (remote repo saya benar-benar besar).

Inilah perintah saya untuk menambahkan baris ke svn: ignore, ganti URL, DIR, dan VALUE.

svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR

2
2017-10-23 16:43