Apakah ada cara untuk secara langsung tar versi terbaru dari folder SVN tanpa file tersembunyi SVN? Saya ingin membuat arsip tar tanpa file SVN. Saya tahu Anda bisa mendapatkan yang terbaru dengan file pelacakan SVN, tetapi apakah ada satu liner yang akan langsung mengirim informasi ke arsip?
13
Jawaban:
Cara termudah untuk membuat salinan versi terbaru dari repositori tanpa semua folder .svn adalah dengan menggunakan
svn export
perintah.Inilah cara saya membuat arsip:
Di mana URL adalah URL repositori svn Anda dan PATH adalah jalur lokal yang cocok untuk menyimpan salinan repositori yang diekspor. Saya tidak tahu cara melakukannya lebih langsung dari ini. Sayangnya Anda berakhir dengan salinan yang diekspor berkeliaran, jadi Anda mungkin hanya ingin meletakkan semuanya dalam skrip bash pendek yang kemudian menghapus file temp sesudahnya.
EDIT: Meskipun ini adalah metode termudah dan apa yang saya gunakan juga saya akan berhati-hati. Dalam penelitian saya, saya menemukan ini http://narfation.org/2009/01/08/creating-recreatable-tar-gz-from-svn yang dengan jelas memberi tahu kita masalah kepemilikan grup / pengguna yang terpelihara yang menyebabkan masalah ketika digunakan ke yang lain sistem. Saya telah mencoba skrip ini dengan modifikasi saya sendiri sesuai dengan tujuan saya dan Anda mungkin mendapat manfaat juga.
sumber
Mungkin tar versi 1.23 memungkinkan Anda untuk mengecualikan semua file versi dari baris perintah tetapi sayangnya tidak berfungsi pada versi 1.20 saya:
sumber
Buka direktori kerja subversi (checkout) dan jalankan ini:
Jika Anda menggunakan utilitas GNU, Anda juga dapat menjalankan:
Jika memungkinkan, saya akan merekomendasikan menggunakan format ustar (
-H ustar
).sumber
Saya juga melihat:
Terima kasih tar.
sumber
Jika saya mengerti dengan benar, Anda ingin mendapatkan hasil checkout svn?
Jadi, dalam pseudocode, akan terlihat seperti ini:
sumber
Ini diadaptasi dari one-liner yang saya tulis. Diasumsikan Anda memiliki direktori ~ / tmp. Anda harus mengubah variabel PROJ dan URL dalam dua langkah pertama. Sisanya harus bekerja.
Untuk menyalin mudah:
Agar mudah dilihat:
sumber
Ini adalah usaha saya untuk mencoba membuat tarball deterministik dari repo SVN.
Membutuhkan GNU tar 1.27 atau lebih baru.
Fitur:
pax
header yang diperpanjanggit archive
akan dilakukan.tar.gz
dan.tar.xz
kompresi. Untuk gzip, Anda dapat mengoptimalkan kompresi lebih lanjut dengan menggunakanadvdef
dari AdvanceCOMP (advdef
menggunakan perpustakaan zopfli).Sebagai contoh, saya menggunakan repo subversi sendiri sebagai sumber untuk checkout dan pembuatan tarball. Perhatikan bahwa ini bukan cara SVN mengemas tarbal mereka dan saya tidak terkait dengan pengembangan SVN. Lagipula itu hanya contoh .
sumber