"Tidak mungkin untuk memeriksa satu file. Tingkat pemeriksaan terbaik yang dapat Anda lakukan adalah pada tingkat direktori."
Bagaimana cara saya mengatasi masalah ini saat menggunakan Subversion?
Kami memiliki folder ini di Subversion tempat kami menyimpan semua gambar kami. Saya hanya ingin memeriksa satu file (gambar) dari itu. Folder ini sangat besar dan memiliki banyak hal lain yang tidak saya butuhkan sekarang.
svn
version-control
bluegene
sumber
sumber
svn up
ke direktori lokal Anda di komputer Anda.Jawaban:
Jawaban sederhananya adalah Anda
svn export
mengambil file alih-alih memeriksanya.Tapi itu mungkin bukan yang Anda inginkan. Anda mungkin ingin mengerjakan file dan memeriksanya kembali, tanpa harus mengunduh GB sampah yang tidak Anda butuhkan.
Jika Anda memiliki Subversion 1.5+, lakukan checkout jarang:
Untuk versi SVN yang lebih lama, Anda mungkin mendapat manfaat dari yang berikut ini:
Alternatif (misalnya jika direktori memiliki terlalu banyak sampah langsung dari revisi di mana ia dibuat) adalah dengan melakukan URL-> URL salin file yang Anda inginkan ke tempat baru di repositori (efektif ini adalah cabang kerja file). Periksa direktori itu dan lakukan modifikasi Anda.
Saya tidak yakin apakah Anda kemudian dapat menggabungkan salinan yang dimodifikasi kembali sepenuhnya di repositori tanpa salinan target yang berfungsi - saya tidak pernah perlu melakukannya. Jika demikian maka lakukanlah.
Jika tidak maka sayangnya Anda mungkin harus menemukan orang lain yang memiliki seluruh direktori diperiksa dan minta mereka melakukannya. Atau mungkin pada saat Anda melakukan modifikasi, sisanya akan selesai mengunduh ...
sumber
svn export
daripada menggunakan antarmuka web, jika saya tahu file apa yang saya inginkan. Penanya sudah menggunakan SVN, jadi saya kira itu tergantung klien apa dan apakah klien itu membuatnya mudah digunakansvn export
. Saya menemukan antarmuka web lebih baik untuk browsing daripadasvn ls
:-)Coba
svn export
alih-alihsvn checkout
. Itu berfungsi untuk file tunggal.Alasan untuk pembatasan ini adalah bahwa
checkout
membuat copy pekerjaan, yang berisi meta-informasi tentang repositori, revisi, atribut, dll. Metadata itu disimpan dalam subdirektori bernama '.svn'. Dan satu file tidak memiliki subdirektori.sumber
svn
tidak akan melakukan ekspor file tunggal.svn cat $url_to_file_in_repo > $local_file_name
.Gunakan
svn cat
atausvn export
.Untuk itu, Anda tidak perlu mengambil direktori kerja, tetapi Anda tidak akan dapat melakukan perubahan apa pun yang Anda lakukan. Jika Anda perlu melakukan perubahan dan mengkomitnya, Anda memerlukan direktori yang berfungsi, tetapi Anda tidak harus mengambilnya sepenuhnya. Periksa revisi di mana direktori itu masih / hampir kosong, dan kemudian gunakan 'svn cat' untuk mengekstrak file dari HEAD.
sumber
svn cat svn://.../my_file.txt
persis apa yang saya cari. Saya bekerja di repositorisvn://
hanya (tidakhttp://
), dan tampaknya antarmuka websvn terbaru tidak menyediakan unduhan file mentah (atau kita salah mengonfigurasi atau saya buta). Lebih mudah melakukan ini daripadacheckout
+up
hanya untuk mengunduh file.Sumber
sumber
curl
atauwget
.Solusi setara TortoiseSVN dari jawaban yang diterima (saya telah menulis ini dalam dokumen internal untuk perusahaan saya karena kami baru mengadopsi SVN) berikut. Saya pikir akan sangat membantu untuk berbagi di sini juga:
Memeriksa satu file: Subversion tidak mendukung checkout satu file, itu hanya mendukung checkout struktur direktori. (Referensi: http://subversion.tigris.org/faq.html#single-file-checkout ). Ini karena dengan setiap direktori yang diperiksa sebagai copy yang berfungsi, metadata mengenai modifikasi / revisi file disimpan sebagai folder tersembunyi internal (.svn / _svn). Ini tidak didukung saat ini (v1.6) untuk file tunggal.
Alternatif strategi yang disarankan: Anda harus melakukan bagian direktori checkout hanya sekali, setelah itu Anda dapat langsung pergi dan checkout file tunggal Anda. Lakukan checkout jarang dari folder induk dan struktur direktori. Checkout yang jarang pada dasarnya hanya memeriksa struktur folder tanpa mengisi file konten. Jadi Anda checkout hanya struktur direktori dan tidak perlu checkout SEMUA file seperti yang menjadi perhatian. Referensi: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html
Langkah 1 : Lanjutkan ke browser repositori
Langkah 2 : Klik kanan folder induk dalam repositori yang berisi semua file yang ingin Anda kerjakan dan Pilih Checkout.
Langkah 3 : Di dalam jendela sembulan yang baru, pastikan direktori checkout menunjuk ke lokasi yang benar pada PC lokal Anda. Akan ada juga menu dropdown berlabel "checkout depth". Pilih "Hanya item ini" atau "Anak-anak langsung, termasuk folder" tergantung pada kebutuhan Anda. Opsi kedua direkomendasikan sebagai, jika Anda ingin bekerja di folder bersarang, Anda dapat langsung melanjutkan waktu berikutnya jika tidak, Anda harus mengikuti seluruh prosedur ini lagi untuk folder bersarang.
Langkah 4 : Folder induk sekarang harus tersedia dalam folder yang Anda pilih secara lokal dan sekarang sedang dipantau dengan SVN (folder tersembunyi ".svn" atau "_svn" sekarang harus ada). Dalam repositori sekarang, klik kanan satu file yang ingin Anda periksa sendiri dan pilih opsi "Perbarui Item untuk direvisi". File tunggal sekarang dapat dikerjakan dan diperiksa kembali ke dalam repositori.
Saya harap ini membantu.
sumber
Anda dapat melakukannya dalam dua langkah:
Periksa repositori SVN kosong dengan informasi meta saja:
Jalankan
svn up
untuk memperbarui file yang ditentukan:sumber
Pembaruan untuk berjaga-jaga jika yang benar-benar Anda butuhkan dapat dicakup dengan memasukkan file ke dalam checkout folder lain.
Karena SVN 1.6 Anda dapat membuat file eksternal , semacam tautan svn. Ini berarti bahwa Anda dapat memiliki folder berversi lain yang menyertakan satu file. Melakukan perubahan pada file di checkout folder ini juga dimungkinkan.
Ini sangat sederhana, checkout folder yang ingin Anda sertakan file, dan cukup tambahkan properti ke folder
dengan konten seperti ini:
Setelah Anda melakukan ini, file tersebut akan muncul di checkout folder berikutnya. Pada dasarnya ini berfungsi, tetapi ada beberapa batasan seperti yang dijelaskan dalam dokumentasi yang ditautkan di atas.
sumber
Pergi ke repo-browser klik kanan file dan gunakan 'Save As', saya menggunakan TortoiseSVN.
sumber
(Edit filename.log)
sumber
Jawaban Steve Jessop tidak berhasil untuk saya. Saya membaca file bantuan untuk SVN dan jika Anda hanya memiliki gambar, Anda mungkin tidak ingin memeriksanya lagi kecuali Anda menggunakan Photoshop, jadi ekspor adalah perintah yang lebih baik daripada checkout karena tidak berversi (tapi itu kecil).
Dan itu --depth ARG tidak boleh kosong tetapi file untuk mendapatkan file di direktori langsung. Jadi, Anda akan mendapatkan semua bidang, bukan hanya satu, tetapi kosong tidak mengembalikan apa pun dari repositori.
atau
Adapun jawaban lainnya, cat memungkinkan Anda membaca konten yang hanya baik untuk teks, bukan gambar dari semua hal.
sumber
--depth empty
adalah bahwa file lain tidak boleh diperiksa, dan Anda kemudian bisa mendapatkan hanya satu filesvn up <source/file>
. Dengansvn export
, tidak perlu melakukan ini, cukup tentukan file.Saya hanya menjelajahinya dan mengekspor satu file. Jika Anda memiliki akses HTTP, cukup gunakan browser web untuk menemukan file dan ambil.
Jika Anda perlu mengembalikannya setelah mengeditnya, itu mungkin sedikit lebih membosankan, tapi saya yakin mungkin ada
svn import
fungsi ...sumber
Lakukan sesuatu seperti ini:
Pada dasarnya idenya adalah membuat direktori tempat Anda ingin mengambil file dari SVN. Gunakan
svn cat
perintah dan arahkan output ke file bernama yang sama. Secara default, kucing akan membuang informasi di stdio.sumber
Jika Anda hanya ingin file tanpa menggunakan informasi revisi
sumber
Dengan Subversion 1.5, menjadi mungkin untuk memeriksa (semua) file direktori tanpa memeriksa subdirektori apa pun (berbagai flag --depth). Bukan apa yang Anda minta, tetapi bentuk "kurang dari semua."
sumber
Dengan menggunakan teknik sparse check out, Anda DAPAT memeriksa file tertentu yang sudah diperiksa atau ada ... dengan trik sederhana:
Setelah checkout dari tingkat atas repositori Anda menggunakan opsi 'item ini saja', di Windows explorer, Anda HARUS klik kanan pada file yang Anda perlu perbarui; pilih Repo Browser di menu konteks; temukan file LAGI di browser repositori, dan klik kanan. Anda sekarang akan melihat "perbarui item untuk direvisi" di menu konteks.
Saya tidak yakin apakah itu fitur tidak berdokumen atau hanya bug. Butuh berjam-jam setelah bekerja untuk akhirnya menemukan trik ini. Saya menggunakan TortoiseSVN 1.6.2.
sumber
Saya ingin checkout satu file ke direktori, yang bukan bagian dari copy pekerjaan.
Mari kita dapatkan file di URL berikut: http: //subversion.repository.server/repository/module/directory/myfile
Jadi saya memeriksa direktori yang diberikan yang berisi file target yang ingin saya tuju ke direktori dummy, (mis. Etcb untuk URL yang diakhiri dengan
/etc
).Kemudian saya mengosongkan file .svn / entri dari semua file direktori target yang tidak saya butuhkan, untuk meninggalkan hanya file yang saya inginkan. Dalam file .svn / entri ini , Anda memiliki catatan untuk setiap file dengan atribut-atributnya jadi tinggalkan hanya catatan mengenai file yang ingin Anda dapatkan dan simpan.
Sekarang Anda hanya perlu menyalin lalu '' .svn '' ke direktori yang akan menjadi "copy pekerjaan" baru. Maka Anda hanya perlu:
Sekarang direktori direktori berada di bawah kontrol versi. Jangan lupa untuk menghapus direktori directoryb yang hanya merupakan '' copy pekerjaan sementara ''.
sumber
Karena tidak ada jawaban lain yang berfungsi untuk saya, saya melakukannya menggunakan retasan ini:
Ini akan membuat folder lokal baru yang hanya memiliki file dari jalur jauh. Kemudian Anda dapat melakukan tautan simbolis ke file yang ingin Anda miliki di sini.
sumber
svn co
satu file untuk menghindari seluruh direktori yang penuh dengan file gambar. Juga, menambahkan symlink hanya dapat menambah kompleksitas, bergerak dari direktori temp bisa berfungsi, tetapi Anda masih harus memeriksa seluruh direktori gambar hanya untuk satu gambar. @ steve-jessop punya ide yang tepatMasalah ini dicakup oleh:
http://subversion.tigris.org/issues/show_bug.cgi?id=823
Ada skrip terlampir yang memungkinkan Anda memeriksa satu file dari svn, membuat perubahan, dan melakukan perubahan kembali ke repositori, tetapi Anda tidak dapat menjalankan "svn up" untuk checkout sisa direktori. Ini telah diuji dengan svn-1.3, 1.4 dan 1.6.
sumber
Jika Anda hanya ingin mengekspor file, dan Anda tidak perlu memperbaruinya nanti, Anda dapat melakukannya tanpa harus menggunakan perintah SVN.
Menggunakan Browser Repositori TortoiseSVN , pilih file, klik kanan, lalu pilih " Salin URL ke clipboard ". Rekatkan URL itu ke browser Anda, dan setelah login Anda akan diminta dengan unduhan file.
Dengan cara ini Anda juga dapat memilih revisi yang diinginkan dan mengunduh versi file yang lebih lama.
Perhatikan bahwa ini valid jika server SVN Anda memiliki antarmuka web.
sumber