Bagaimana cara mengatur sistem kontrol kode sumber untuk saya sendiri?

23

Saya memprogram di desktop saya di kantor saya, tetapi juga kadang-kadang di rumah di ruangan yang berbeda di laptop saya, dan bahkan jauh dari rumah. Yang saya butuhkan adalah sistem yang secara otomatis atau sesuai permintaan menyinkronkan pekerjaan saya dari satu ke yang lain, sesuai kebutuhan.

Saya tidak memiliki pengaturan jaringan rumah, dan meskipun saya kira saya bisa melakukannya, itu akan menjadi pertanyaan untuk papan lain, mungkin. Saya sudah memikirkan semacam sistem yang akan menyimpan kode sumber di cloud, tapi saya tidak cukup tahu tentang ini untuk memulai. Saya perlu semacam cara gratis atau murah untuk melakukan ini.

Saya bekerja di .NET (Windows Phone 7, pada kenyataannya).

Cyberherbalist
sumber
1
gunakan dropbox, cukup instal di kedua mesin dan selesai saja. Gratis (hingga 2GB). Untuk kontrol sumber situasi Anda adalah di atas (IMHO).
Darknight
26
Kontrol sumber tidak pernah berlebihan (IMHO)!
Mongus Pong
4
Diperlukan <15 menit (tergantung pada bandwidth unduhan) untuk menginstal dan menjalankan Git.
Mongus Pong
2
diperlukan <3 menit (tergantung pada bandwidth unduhan) untuk menginstal dan menjalankan dropbox.
Darknight
4
DropBox adalah saran yang mengerikan! Ini bukan sistem kontrol versi yang tepat, itu untuk berbagi data. Ini memiliki kebiasaan yang sangat buruk untuk mengunggah dan mengunduh perubahan setiap kali Anda menyimpan file dan menyinkronkan ke semua klien lain secara real time, itu benar-benar merusak mesin Anda melakukan semua lalu lintas jaringan yang tidak perlu ini terutama jika Anda menggunakan sesuatu yang membangun artefak. di direktori yang sama yang ada di DropBox. Pelajari dan gunakan Git atau DVCS yang setara.

Jawaban:

39

Cara termudah adalah dengan menggunakan salah satu sistem online. Periksa GitHub atau BitBucket . Untuk informasi lebih lanjut tentang Git atau Mercurial, lihat masing-masing Referensi Git dan Hg Init .

Peter Rowell
sumber
Mungkin, jika semua mesin memiliki koneksi internet, tetapi ada kasus penggunaan lainnya. Sebagai contoh, saya menyimpan beberapa repositori subversi pada USB flash stick, dan beberapa yang lebih besar (bukan kode sumber - foto dan lainnya) pada hard drive eksternal. Ketika saya lebih bahagia dengan transisi, saya juga cenderung memiliki repositori Mercurial pada USB flash drive. Satu alasan - saya masih menggunakan Windows XP untuk banyak hal, tetapi saya tidak akan membiarkannya (laptop atau desktop) dalam keadaan apa pun di internet akhir-akhir ini.
Steve314
21
Hal yang menyenangkan tentang sistem kontrol versi terdistribusi seperti Git dan Mercurial adalah Anda dapat bekerja dengan repo Anda secara lokal, dan kemudian menyinkronkan dengan beberapa server pusat setiap kali Anda memiliki 'Koneksi internet yang praktis. Kedengarannya seperti solusi ideal untuk OP.
Michelle Tilley
@Brandon - juga berfungsi untuk repo utama pada drive eksternal, ketika terhubung sepanjang waktu itu menyebalkan.
Steve314
2
Ingat, BitBucket memiliki repositori pribadi gratis (tidak seperti GitHub), yang mungkin membuatnya menjadi pilihan yang lebih baik untuk OP.
Kevin Yap
Alasan saya tidak menyarankan menjalankannya secara lokal adalah karena dia tidak terdengar seperti dia akan nyaman dengan itu, dan dia bilang dia membutuhkan akses jarak jauh ke sana. Namun yang jelas, berjalan secara lokal dan mendorong ke penyimpanan cloud adalah cara terbaik / teraman untuk dilakukan.
Peter Rowell
7

Anda dapat menggunakan DVCS seperti Git atau Mercurial yang dapat membuat repositori lokal, lalu instal Dropbox dan memasukkan folder proyek Anda (termasuk folder repositori tentu saja) ke dalam folder dropbox.

Dropbox akan menangani sinkronisasi dan dapat menangani situasi offline selama Anda hanya memodifikasi di satu tempat di antara sinkronisasi.

BTW Dropbox tidak akan mengekspos file Anda ke publik secara default, tetapi Anda masih bisa mengeksposnya jika Anda mau.

EDIT

Mengenai integritas repositori jika Dropbox tidak dapat menyinkronkan satu atau dua file, Anda dapat membuat repositori utama di luar folder Dropbox di PC utama Anda, dan mendorongnya. Jadi jika repo lokal di dalam folder Dropbox rusak, cukup pulihkan dari PC utama. Tapi saya belum pernah mengalami korupsi penyimpanan.

Endy Tjahjono
sumber
Intinya apa yang saya lakukan. Repositori mercurial di desktop dan laptop saya, repositori utama di Dropbox, yang saya dorong dan tarik dari sana.
David Thornley
@ David Saya melakukannya secara terbalik, repo utama di PC, repo kerja di Dropbox, termasuk file kode sumber yang sedang saya kerjakan.
Endy Tjahjono
@Endy Tjahjono: Kedengarannya dari komentar Anda seperti Anda melakukan pekerjaan Anda di satu komputer. Saya menggunakan desktop saya kadang-kadang dan laptop saya kadang-kadang, jadi tidak benar-benar berfungsi untuk memiliki repositori utama saya di salah satu dari mereka.
David Thornley
@ Hapus kesalahan saya, saya seharusnya mengatakan 'backup' repo di PC utama saya. Repo 'utama' saya adalah repo kerja di dalam folder dropbox. Saya hanya mendorong ke repo cadangan sesekali untuk keperluan cadangan.
Endy Tjahjono
6

Berikut adalah beberapa instruksi cepat tentang cara mengatur VCS yang didistribusikan. Manfaat menggunakan git atau mercurial adalah Anda tidak perlu mengatur server agar semuanya berfungsi karena repositori hanyalah sebuah sistem file. Anda memiliki repositori lokal di komputer Anda di sebelah kode Anda (di git ada satu .gitfolder dan di luring ada satu .hgfolder di jalur proyek).

Menggunakan git

Langkah 1: Unduh dan instal git. Untuk windows Anda mungkin ingin menggunakan TortoiseGit . Beberapa catatan pengaturan ada di sini .

Langkah 2: Ikuti buku komunitas git untuk menginisialisasi repositori lokal untuk proyek Anda dan komit ke repositori.

Langkah 3: Untuk meletakkan sesuatu di "cloud" yaitu github, Anda dapat mengikuti tutorial ini .

Menggunakan Mercurial

Langkah 1: Unduh dan instal lincah. Untuk windows Anda mungkin ingin menggunakan TortoiseHg .

Langkah 2: Ikuti panduan Mulai Cepat untuk membuat repositori untuk proyek Anda dan komit ke repositori.

Langkah 3 Untuk meletakkan hal-hal di "cloud" yang bitbucket Anda dapat mengikuti tutorial ini .

Jika Anda bekerja pada .NET Anda mungkin ingin menggunakan Mercurial karena (semacam) dukungan yang lebih baik pada Windows saat penulisan.

Spoike
sumber
2

Seperti yang sudah dikatakan @ peter-rowell dan yang lainnya dengan benar, Cara termudah adalah menggunakan salah satu dari DVCS seperti Git dan sistem online yang sesuai seperti Github atau Unfuddle. Saya pribadi menggunakan Git dan Unfuddle.

Karena, Anda telah menyebutkan bahwa mendapatkan koneksi internet di rumah juga bukan masalah bagi Anda, ada IDE online baru yang berjalan di browser dan hidup di cloud. Saya tidak tahu ada yang tersedia seperti ini sebelumnya, tetapi ini terlihat sangat menarik dan keren. Meskipun, saya belum sering menggunakannya, tapi ini keren.

Syed Aslam
sumber
Unfuddle adalah layanan hebat. Pada dasarnya ini hanya salinan redmine dengan beberapa penyesuaian yang bagus.
Keyo
2

Hampir semua DVCS akan membantu.

Yang paling populer adalah Git, lincah, dan beberapa lainnya; tapi saya sangat suka fosil . Ini adalah satu (kecil!) Yang dapat dieksekusi, mudah portabel, mandiri, multi-platform, dan mencakup wiki, GUI berbasis web, sistem tiket, penangan dokumentasi, dll.

Javier
sumber
1
Bitbucket adalah layanan yang menyediakan hosting Mercurial.
Tamás Szelei
Terima kasih. saya tahu itu; tetapi nama-nama kusut dalam pikiranku
Javier
1

Opsi yang saya sarankan adalah Kiln . Itu dibuat oleh orang yang sama persis yang membuat FogBugz dan Stack Exchange. Jadi itu harus cukup bagus, juga gratis untuk hingga 3 pengguna yang saya percaya. Skalanya seperti FogBugz dan keduanya dapat terintegrasi sehingga Anda dapat melacak bug dan fitur juga.

Seperti yang dikatakan Joel di salah satu posting blognya, pelacakan bug dan kontrol sumber selalu merupakan nilai tambah, bahkan bagi pengembang tunggal.

Maestro yang hilang
sumber
Yah, itu mungkin gratis untuk 3 pengguna, tetapi sekarang $ 25 per pengguna per bulan. Meski begitu, sepertinya produk yang keren.
Cyberherbalist
1

Jika privasi kode Anda tidak sebagai masalah maka Google Code mungkin merupakan solusi yang layak. Itu mengurus bagian hosting dan gratis dan cukup mudah untuk setup. Ini mendukung Subversion, Mercurial dan Git, yang semuanya memiliki klien Windows. Ini juga terintegrasi dengan ID Google sehingga Anda dapat dengan mudah menambahkan kontributor ke proyek. Aku menjadi tuan rumah proyek hobi saya di sana menggunakan Mercurial. Saya telah menginstal klien TortoiseHg di komputer rumah dan komputer kerja saya, sehingga saya dapat mengerjakan proyek-proyek saya saat istirahat.

Sistem Down
sumber
Bagus! Terima kasih telah menyebutkan ini - Saya belum pernah mendengar tentang Google Code sebelumnya.
Cyberherbalist
0

Itu tergantung pada apa pengetahuan Anda tentang pengaturan server dan berapa lama Anda mau berinvestasi.

Secara pribadi saya telah menyewa server virtual kecil dari hoster dan menginstal Apache Webserver dan repositori Subversion (yang sekarang saya konversi ke git). Pengaturannya sebenarnya tidak terlalu banyak dan begitu sudah berjalan, Anda tidak perlu lagi khawatir. Pengaturan ini memiliki keuntungan bahwa Anda tidak hanya dapat mengatur repositori kontrol versi tetapi juga hal-hal lain yang ingin Anda akses dari mana pun Anda berada (saya sudah menginstal WIKI dan pelacak masalah misalnya).

Jika terlalu banyak overhead untuk Anda, Anda selalu dapat menggunakan sistem online yang sudah disarankan seperti GitHub.

perdian
sumber
0

Yang termudah adalah pergi dengan penyedia git, github memiliki kemungkinan untuk membayar akun pribadi.

Tapi jangan lupa tentang svn, ini sederhana dan mudah digunakan. Anda dapat menginstal server svn di suatu tempat yang dapat Anda jangkau, mungkin sedang bekerja. (Dan proyek seperti server Visual svn membuat ini sangat mudah di windows.) Sebagai klien Anda bisa menggunakan plugin Visual Studio atau tortoisesvn.

Satu-satunya hal yang perlu Anda ingat adalah bahwa Anda perlu melakukan dan memperbarui ketika Anda beralih komputer.

Johan
sumber
Saya tidak berpikir SVN adalah jawaban yang tepat di sini. Saya merasa lebih mudah untuk mengatur Mercurial daripada SVN, dan ini adalah sistem yang lebih baik daripada SVN. SVN tidak berguna tanpa koneksi langsung ke repositori pusat, dan OP memiliki dua komputer yang tampaknya tidak memiliki tautan langsung.
David Thornley
Saya tidak yakin, svn lebih mudah daripada alternatif yang didistribusikan. Tetapi karena ia tidak dapat mencapai server setiap saat, Anda harus didisiplinkan saat ingin bercabang. Tetapi seorang pria menunjukkan jarang melakukan itu. Dan yang perlu dikomit adalah ketika Anda mengganti komputer, jadi saya setuju bahwa itu tidak optimal. Tapi itu alternatif. Saya benar-benar bekerja seperti ini sebelum saya mulai menggunakan git. (Tapi dengan git lebih mudah salah).
Johan
Asumsi saya adalah bahwa dia memindahkan laptop bersamanya ketika dia pergi bekerja, jika tidak ini tidak akan menjadi pengaturan yang mudah dan David benar.
Johan
Waktu yang dibutuhkan untuk menyiapkan repo git atau Hg ( git init), beberapa detik. Dengan subversi Anda memerlukan server terlebih dahulu, yang jauh lebih sulit daripada hanya berjalan git/hg initdi direktori Anda. Saya tidak sabar dan malas, dan Git mendorong saya untuk menggunakan SCM karena itu (menggabungkan, menginisialisasi, melakukan) sangat cepat dan tidak menyakitkan.
Keyo
0

Saya menggunakan Beanstalk . Ini berfungsi baik bagi saya sebagai server SVN pribadi. Mereka juga memiliki hosting Git tetapi saya belum mencobanya. Mereka memiliki akun gratis untuk memulai, dan kemudian Anda dapat beralih ke akun berbayar jika perlu.

RasionalGeek
sumber
-2

Dropbox

Semua solusi lain terlalu banyak untuk kebutuhan Anda:

Cukup instal Dropbox di kedua komputer.

Kontrol sumber penuh meledak bagus tetapi dalam situasi Anda IMHO tidak diperlukan .

Ini adalah jalur termudah yang paling mudah untuk diambil -> Anda baru saja berakhir dengan folder yang disinkronkan secara otomatis pada sebanyak mungkin mesin yang Anda inginkan.

Malam gelap
sumber
1
Anda dapat menggunakan Git bersama-sama dengan Dropbox. Lihat stackoverflow.com/questions/1960799/…
Mongus Pong
4
Tidak ada yang berlebihan tentang penggunaan kontrol sumber, terutama ketika Git dan HG sangat mudah diatur. Saya tidak berpikir itu penting bahwa dia adalah pengembang tunggal, jika dia menulis kode produksi dia perlu kontrol sumber.
richeym
Ya, Anda mungkin benar. Saya hanya berpikir untuk satu pengembang saja yang tidak perlu dan OTT, tetapi itu adalah pandangan saya.
Darknight
git init, git add ., git commit -m "bla"Adalah tentang semua yang perlu Anda ketahui untuk melakukan beberapa kode. Tidak sulit dan Anda mendapatkan bagian dari pikiran bahwa Anda dapat mengembalikannya. Tentu saja manfaatnya jauh lebih penting dalam sebuah tim, tetapi saya ingin dapat mengatur ulang kembali ke titik waktu itu penting. Mampu bercabang dan simpanan membuat saya lebih produktif juga.
Keyo
Saya mendengar apa yang Anda katakan, di kotak drop sinkronisasi real-time, itu memang memiliki roll dasar. Ya tidak ada apa-apanya dibandingkan dengan kontrol sumber yang ditiup penuh, tetapi kemudian cukup banyak "api & lupakan"
Darknight