Bisakah kita mengatur server svn di komputer lokal tanpa akses jaringan?

25

Saya ingin mengatur repositori SVN di komputer saya tanpa akses jaringan apa pun. Saya sedang mengerjakan kode tanpa kolaborator, jadi saya tidak ingin kode itu tersedia untuk umum.

Saya membaca posting ini , tetapi disarankan menggunakan layanan repositori SVN online yang memberikan repositori gratis. Dalam hal ini, kode saya akan tersedia untuk umum (seperti yang termasuk dalam ketentuan paket gratis).

Jadi saya bertanya-tanya apakah saya dapat mengatur server lokal pada mesin Windows XP saya yang hanya saya akses bahkan ketika saya tidak memiliki koneksi internet?

Aitezaz Abdullah
sumber
15
Saya sangat merekomendasikan menggunakan git untuk sesuatu seperti svn untuk alur kerja yang telah Anda jelaskan
Daenyth
7
Anda tentu dapat menginstal svn secara lokal dan menggunakannya. Tidak ada masalah dengan itu. visualsvn.com/server/download
Alex
8
Atau Mercurial; "hg init" membuat repositori di direktori Anda berada ... tidak bisa lebih mudah dari itu?
pelaku
8
Saya tidak melihat apa pun dalam pertanyaan untuk menyarankan DVCS diperlukan. Subversi sangat cocok untuk skenario yang dijelaskan. Mari kita tidak mengaburkan jawaban kita dengan rekomendasi untuk alternatif ketika tidak ada alasan teknis untuk melakukannya.
RichardM
3
@RichardM: Tidak ada yang salah dalam menyarankan solusi lain jika lebih mudah untuk setup dan lebih banyak bukti di masa depan. DVCS memberikan banyak manfaat lain jika suatu hari OP ingin berkolaborasi dengan orang lain.
marco-fiset

Jawaban:

31

Cara termudah untuk menyiapkan server lokal adalah dengan menggunakan svnserve :

Subversion termasuk Svnserve - server mandiri yang ringan yang menggunakan protokol khusus melalui koneksi TCP / IP biasa. Ini sangat ideal untuk instalasi yang lebih kecil, atau di mana server Apache yang penuh tidak dapat digunakan.

Anda sebenarnya tidak memerlukan server subversi, jika yang Anda ingin lakukan hanyalah mengakses repositori secara lokal, karena Anda dapat mengakses repositori subversi melalui file URL, seperti yang dijelaskan dalam jawaban ini :

Anda dapat mengakses repositori menggunakan file: // protokol sehingga Anda hanya perlu menginstal Tortoise SVN dan tidak ada yang lain. Lihat pertanyaan ini di FAQ: Apakah mungkin menggunakan TortoiseSVN tanpa server?

Anda bahkan dapat memiliki repositori di perangkat usb sehingga Anda dapat membawa sumbernya dan mengerjakannya dari komputer lain.

Jika Anda menggunakan TortoiseSVN , maka Anda dapat menemukan instruksi di Creating The Repository With TortoiseSVN :

  1. Buka windows explorer

  2. Buat folder baru dan beri nama misalnya SVNRepository

  3. Klik kanan pada folder yang baru dibuat dan pilih TortoiseSVN → Buat Repositori di sini ....

Langsung di atas pada halaman ini juga menjelaskan cara membuat repositori dari baris perintah .


Karena itu, saya akan merekomendasikan agar Anda melihat Mercurial atau Git sebagai alternatif svn. Jika Anda terbiasa dengan TortoiseSvn maka Anda akan menemukan TortoiseHg dan TortoiseGit transisi yang mudah, ditambah lagi memberi Anda fleksibilitas untuk bekerja dengan cara yang didistribusikan nanti jika Anda perlu. Sebagai contoh di masa lalu saya telah menggunakan memory stick untuk mentransfer hgrepositori antara mesin tanpa akses jaringan, dan ketika Anda bekerja dengan cara ini Anda mendapatkan cadangan gratis ke dalam tawar-menawar.

Mark Booth
sumber
Jawaban yang bagus!
Steve
9

Server paling sederhana (dan tercepat), yang dapat Anda gunakan untuk bekerja dengan repositori lokal, tertanam di setiap svn-client . Ini adalah server untuk mengakses semua repositori dan jumlah repositori , yang ada pada sistem file lokal, menggunakan file protokol: ///. Itu tidak memberikan otorisasi atau metode otentikasi, hanya memberikan akses penuh tak terbatas ke repositori yang terkendali, tetapi, dari sisi lain, itu memungkinkan untuk menggunakan dan memberikan semua fitur sistem VCS per se.

Untuk menggunakan server ini, Anda memiliki dalam direktori kosong di panggilan lokasi CLI-command svnadmin dengan sub-perintah dan parameter yang sesuai (saya tidak ingat, apakah ada program administratif dalam bundel klien-CLI atau tidak dan tidak bisa check it - Saya belum menginstal CLI svn-client, hanya TortoiseSVN, yang memiliki program ini di installer di versi 1.7) - Saya harap, Anda akan dapat menemukannya.

svnadmin helptunjukkan kami semua sub-perintah yang tersedia, kami sekarang tertarik pada sub-perintah create.

svnadmin help create berikan semua yang dibutuhkan untuk kami detail

create: usage: svnadmin create REPOS_PATH

Create a new, empty repository at REPOS_PATH.

Valid options:
...

Pada titik awal untuk repo pertama kita dapat mengabaikan semua opsi fine-tune dan hanya mengingat bentuk utama svnadmin create REPOS_PATH, di sana REPOS_PATH adalah jalur absolut atau relatif ke direktori kosong, yang direncanakan untuk repo. Karena kebanyakan orang Windows biasa untuk aplikasi lintas platform mungkin orang mungkin bingung, yang notasi (maju atau mundur) untuk digunakan di jalur (metoo), cara teraman adalah cdke lokasi, dari mana dir kami terlihat tanpa jalur panjang - induk dari direktori repo masa depan atau direktori itu sendiri. Untuk yang direncanakan untuk repo z:\Main sebelumnya svnadmin create

Z:
cd \Main

dan akhirnya

svnadmin create .

Sebagai hasilnya, kami membuat repositori kosong dalam direktori, yang ditampilkan di Windows Explorer dengan ikon khusus sebagai indikator konten

RepoFolder

Sekarang, setiap kali repositori ini diperlukan, kami menggunakan perintah SVN biasa, ada bagian-URL atau parameter yang tampakfile:///Z:/Main

c:\>svn ls file:///Z:/Main
branches/
tags/
trunk/

(Saya menambahkan pohon repositori standar dalam repo).

Mari kita membedah URL aneh ini:

  • file:///, seperti untuk URL apa pun, berarti protokol akses, dalam kasus kami protokol adalah khusus, dan memiliki tiga, bukan dua garis miring
  • Z:/Main adalah path lengkap untuk repo dengan drive dan path di dalam drive, di sana semua Windows-backslash digantikan oleh garis miring ke depan "klasik"

Dari titik lain repositori ini tidak memiliki perbedaan dari "Big Brothers" dengan server Subversion khusus

RepoBrower untuk file: /// repo

Malas Badger
sumber
1
@Lazy Badger OP jelas bertanya bagaimana cara mengatur server svn. Anda menyuruhnya untuk tidak menggunakan server sama sekali. Ini menghindari menjawab pertanyaan, seperti yang dinyatakan.
alternatif
5
@ mathepic - sebenarnya OP bertanya bagaimana mengatur repositori SVN bukan server - perbedaan besar.
Murph
5

Mari kita coba jawaban yang merekomendasikan solusi umum daripada spesifik.

Pertama ya, Anda dapat menggunakan Subversion di komputer mandiri - Anda dapat menginstal server secara lokal atau Anda dapat bekerja dengan file: //


Tetapi kecuali jika ada alasan yang sangat bagus mengapa Anda harus menggunakan subversi, saya akan menyarankan bahwa ini bukan solusi terbaik untuk masalah kontrol versi lokal - paling tidak karena gagal salah satu hal yang saya anggap penting yaitu memastikan bahwa Anda kode sumber setidaknya ada di dua tempat (ya, bahkan untuk barang pribadi). Karena itu saya akan menyarankan penggunaan Sistem Kontrol Versi Terdistribusi (DVCS).

Salah satu manfaat dari DVCS adalah, begitu alat diinstal, repositori terdapat di dalam folder dan Anda dapat menyinkronkan konten di antara folder yang berbeda yang berisi repo "yang sama" selama Anda memiliki akses level file. Anda juga memiliki opsi untuk berbicara dengan versi "server" dari repo tersebut (yang di-host secara pribadi atau yang tersedia sebagai layanan). Ini membuat hidup jauh lebih mudah menjalankan semuanya secara lokal.

Ada keuntungan lain untuk DVCS juga.

Seperti yang sudah saya sebutkan, saya tidak berpikir Anda benar-benar memiliki solusi VCS yang tepat sampai kode Anda ada di setidaknya dua mesin (khususnya dua hard disk yang berbeda dan idealnya di lebih dari satu lokasi - meskipun kloning dan mendorong untuk mengatakan USB stick atau Penyimpanan "cloud" (skydrive, dropbox, et al) adalah cara lain yang juga berfungsi).

Dalam hal DVCS mana - saya akan melihat Mercurial (Hg) dan Git dan juga pada Veracity . Saya menggunakan Mercurial karena masih lebih bagus di windows ...

Jika Anda setuju dengan layanan yang di-host, saya benar-benar setuju bahwa ada banyak sekali yang harus dipuji oleh github - tetapi ada juga banyak hal baik tentang bitbucket dan Fogbugz / Kiln ... dan hal yang sama mungkin berlaku pada banyak layanan lain yang belum saya daftarkan (mis. http://beanstalkapp.com/ yang disebutkan secara sepintas lalu kepada saya di twitter hari ini)

Murph
sumber
2

Subversi tidak memerlukan server. Ini menggunakan repositori terpusat, tetapi repositori ini dapat diakses melalui metode akses 'file', yang berarti, Anda hanya perlu akses ke sistem file tempat penyimpanan repositori. Cara termudah untuk mengatur ini adalah dengan membuat folder di suatu tempat di hdd Anda, arahkan TortoiseSVN (atau alat serupa) padanya, dan 'buat repositori di sini'. Dari sana, Anda dapat melakukan apa pun yang Anda butuhkan untuk memasukkan kode ke dalam repositori.

Namun, dalam jangka panjang, Anda mungkin lebih baik menggunakan SCM terdistribusi, kandidat terbaik adalah git (lebih kuat, kurva pembelajaran curam, bekerja paling baik di * nix) dan lincah (sedikit kurang kuat, mudah dipelajari, bekerja sama baik di windows dan * nix). Dengan ini, copy pekerjaan Anda berisi seluruh repositori, dan Anda dapat membuat banyak klon (jarak jauh atau lokal) seperti yang Anda inginkan. Anda dapat memulai secara lokal, dan jika Anda memutuskan untuk meng-host repositori secara eksternal, Anda cukup mengkloning repositori lokal yang ada ke lokasi eksternal, dan Anda dapat menyinkronkan di kedua arah kapan saja. Lebih baik lagi, karena masing-masing klon Anda berisi seluruh sejarah proyek, SCM berfungsi ganda sebagai sistem cadangan. Dengan subversi, jika server Anda mati dan Anda belum mencadangkannya, riwayat Anda hilang - dengan git,

http://hginit.com/ memiliki tutorial yang sangat baik untuk memulai dengan lincah.

tammmer
sumber
1

Ada beberapa perusahaan hosting SVN yang menawarkan akun gratis untuk satu atau dua pengembang dan tidak mengharuskan kode Anda publik. Periksa bagan yang ditautkan untuk biaya $ 0, Diperlukan OSS = TIDAK. Saya menghitung sembilan penyedia yang memenuhi kriteria tersebut sekarang.

Meskipun Anda dapat meng-host repositori Anda sendiri dengan sangat mudah, ada beberapa manfaat yang datang dengan menggunakan penyedia:

  • Anda dapat mengakses kode Anda dari mana saja tanpa pengaturan tambahan.

  • Menjaga kode Anda di luar situs melindungi Anda dari kerusakan hard disk, kebakaran, dll.

  • Biaya administrasi rendah.

Caleb
sumber
Saya melihat konsep yang masuk akal di sisi OP - dia ingin SVN, dan ingin secara lokal (kata terakhir - paling penting). Kasing kasual. Anda menjawab tentang berbagai kasus penggunaan , yang dapat dianggap "Bukan jawaban" - baca kembali teks Anda dari kata-kata pertama, tolong! Saya tidak menandai jawaban Anda dan orang lain sebagai "bukan jawaban", sementara secara formal mereka bukan jawaban . HTH
Lazy Badger
Baca kembali KALIMAT TERAKHIR OP: "jika saya dapat mengatur server lokal di mesin windows xp saya yang hanya saya akses bahkan ketika saya tidak memiliki koneksi internet?" - ini pertanyaan , dalam teks bahasa Inggris yang sederhana. Pertanyaan ini membutuhkan jawaban. Apakah Anda "jawaban" berkorelasi dengan cara apapun dengan pertanyaan ?! Jujurlah setidaknya untuk dirinya sendiri , dengan mengakui kesalahannya
Lazy Badger
Saya tidak membaca yang tersirat (dan menunjukkan ini lebih dari sekali ), saya membaca dengan tepat apa yang ditulis dan menjawab pertanyaan yang diajukan, tanpa memikirkan penulisnya, yang ingin dia katakan tetapi tidak katakan . Bertentangan dengan sebagian besar jawaban dalam topik ini, ada jawaban yang tidak berkorelasi dengan pertanyaan
Lazy Badger