Jika Anda menggunakan banyak komputer, bagaimana Anda menyinkronkan semuanya? [Tutup]

31

Saya memiliki 4 atau 5 komputer sekarang, dan saya membutuhkan sistem yang lebih baik untuk menyinkronkan semuanya. Saya menggunakan git dan github banyak untuk menyinkronkan file saya untuk proyek pemrograman, tetapi kemudian ada database, file .bash_profile, skrip bash, dll. Terkadang, alih-alih menyinkronkan file, saya hanya ssh in dari satu komputer ke komputer lain. Tapi ini semakin kacau. Beberapa komputer saya adalah Ubuntu dan yang lainnya adalah OS X.

Adakah saran untuk mengelola alur kerja yang mencakup beberapa komputer pribadi?

dan
sumber
1
Mungkin saya harus mencoba folder berbagi jaringan
dan
1
@rwong saya mendapat kesan bahwa @dan sedang mencari "jawaban yang biasa" di tempat pertama. Pertimbangkan memposting jawaban yang menjelaskan bagaimana menggunakan rsync dan folder bersama dapat membantunya.
Adam Lear
1
Dengan sangat hati-hati.
greyfade
4
Ini sebenarnya tidak spesifik untuk pemrograman. Mungkin bermigrasi ke SU akan menjadi tempat yang lebih baik untuk ini?
Walter
1
@ FarmBoy - itu akan tergantung pada jenis DB karena banyak dari mereka benar-benar hanya file juga ... Saya masih melihat ini sebagai masalah sinkronisasi file daripada pemrograman. Dan saya pikir akan ada lebih banyak variasi jawaban pada SU. Hanya 2 sen saya.
Walter

Jawaban:

15

Saya menggunakan kombinasi Git untuk repositori git dan Unison untuk yang lainnya. Saya memiliki beberapa profil serentak sehingga saya dapat menyinkronkan hal-hal tertentu, dan yang menyinkronkan semuanya. Saya juga memiliki skrip bash yang melewati dan menyinkronkan semua hal yang disinkronkan secara bersamaan kemudian melewati dan memperbarui semua repositori git saya.

Serentak adalah hal terbaik dalam pikiran saya ketika datang untuk menyinkronkan komputer.

sp0rus
sumber
1
Bagaimana Anda menyinkronkan basis data? Apakah ini berfungsi untuk perubahan DDL dan DML?
Eric Wilson
Saya tidak bekerja dengan hal-hal yang berhubungan dengan SQL / database saat ini, jadi saya tidak bisa menjawab pertanyaan itu, karena tidak berlaku untuk saya. Saya melewatkan bagian dari pertanyaan awal, dan menjawab bagaimana saya mendapatkan semua kode dan informasi profil saya disinkronkan.
sp0rus
Apakah Anda mendapatkan konflik versi saat menggunakan Unison? Bagaimana Anda menguranginya?
dan
Saya selalu menyinkronkan secara manual sebelum mengubah apa pun, sehingga saya mengedit versi file yang paling baru. Saya juga memiliki set tugas cron untuk setiap malam untuk menyinkronkan komputer. Saya belum punya masalah dengan konflik versi dengan tetap menggunakan sistem ini. Ketika saya harus menyimpang dan terjadi konflik, itu adalah sesuatu yang saya bisa pilih yang mana yang ingin saya ganti dengan yang lain.
sp0rus
15

Dropbox

Untuk menyinkronkan file, semudah mengerjakannya di dalam folder yang diketahui DropBox. Video pada halaman utama melakukan sebagian besar deskripsi, itulah sebabnya saya tidak mengomentari fitur. Cukup modifikasi file versi dan DropBox akan mengunggahnya secara otomatis, maka semua mesin lain dengan DropBox akan secara otomatis mengunduh versi terbaru.

Untuk hal-hal seperti basis data, symlink mungkin merupakan jalan yang harus ditempuh. Utas ini di forum DropBox memberikan sedikit wawasan tentang bagaimana orang dapat menyinkronkan database MySQL. Atau Anda bisa melakukan rute skrip "ekspor / impor", atau, jika memang Anda menggunakan MySQL, Anda bisa melihat Replikasi dan cara mengimplementasikannya (ini adalah fitur MySQL yang tidak menggunakan DropBox).

badgerr
sumber
Saya tidak melihat bagaimana Anda akan menggunakan Dropbox untuk menyinkronkan basis data.
Eric Wilson
Anda bisa menjadwalkan dump / restore database reguler ke / dari direktori dropbox.
badgerr
6
@badgerr Pertimbangkan untuk memperluas jawaban Anda untuk menyertakan bagaimana Dropbox dapat digunakan dalam berbagai skenario yang disebutkan OP.
Adam Lear
Itu jelek. Saya lebih suka menggunakan script-runner seperti DbMaintain.
Eric Wilson
1
-1 untuk alasan yang disebutkan Anna. Bentangkan jawaban Anda dan suara akan dibalik ;-)
fretje
7
  • Dropbox
  • Github
  • Firefox Sync untuk pengaturan bookmark / riwayat / Firefox
talonx
sumber
1
+1 untuk jawaban langsung dan untuk dropbox ada di atas. Terlepas dari masalah PR terbaru mereka dengan komunitas open source, dropbox sangat berharga bagi saya.
Falmarri
3

Anda dapat menggunakan github untuk semua kode Anda, tentu saja, termasuk file .bash_profile dan skrip bash.

Server Hudson / Jenkins CI baik untuk memelihara berbagai lingkungan. Digunakan bersama dengan DbMaintain, ini juga dapat menjaga database Anda tetap sinkron.

Tim saya menggunakan kombinasi ini untuk menyinkronkan empat pasangan stasiun, berbagai laptop, dan lingkungan CI, TEST, dan QA (dengan server dan salinan DB mereka sendiri).

Ini melibatkan mesin Windows, laptop Mac, dan server Linux, sehingga cukup fleksibel.

Eric Wilson
sumber
2

Saya menyimpan dotfile saya di git, dengan cabang untuk pengaturan khusus mesin. Ini memungkinkan saya membuat mesin baru diatur dengan cepat dan saya dapat berbagi skrip dan menyimpannya di versi terbaru.

Daenyth
sumber
1

Mungkin Anda perlu mundur selangkah dan bertanya pada diri sendiri mengapa Anda membutuhkan begitu banyak komputer. Ini seperti seseorang yang bertanya bagaimana menjaga semua barangnya tetap sama di 5 mobil yang dimilikinya.

Saya sarankan Anda bertanya pada diri sendiri apa yang dilakukan setiap mesin yang tidak dilakukan mesin utama Anda, dan lakukan saja.

Sudahkah Anda menganggap laptop yang bagus?

Jika ini semua ada di rumah Anda, Anda dapat mengatur server dan menyimpan semua barang di sana. Maka Anda hanya memiliki satu mesin dengan data untuk membuat cadangan.

Jika mereka adalah mesin jarak jauh, pertimbangkan untuk mendapatkan vps linux dan simpan barang jarak jauh Anda di sana. Jangan menggunakan layanan online gratis seperti github, dropbox, dll, karena dapat menghilang pada waktu yang salah.

Jangan gunakan AWS untuk menyimpan barang-barang Anda. pada $ 0,1 / bulan / GB, itu $ 100 / bulan / TB, atau $ 1200 / tahun / TB. Untuk uang itu, Anda dapat membeli sekitar 15 hard drive 1TB Digital Digital.

Jika Anda menjalankan bisnis dan menghasilkan uang, gunakan layanan terbaik yang bisa Anda dapatkan, tetapi jujur ​​saja, sulit untuk mengalahkan hard drive untuk memindahkan banyak data. Bahkan drive USB mikro 32GB seukuran kuku dan Anda dapat memindahkan banyak data ke ...

Itu Awan, Awan Pribadi. Mungkin harus ada Cloud Pribadi ...

Christopher Mahan
sumber
Terima kasih atas tipsnya. Saya memiliki 5 komputer, tetapi saya hanya menggunakan 3 dari mereka, dan saya membutuhkan ketiganya. 1 server Ubuntu di rumah, 1 laptop Thinkpad Ubuntu (pekerja keras), dan 1 Macbook Pro untuk pengembangan iOS
dan
0

Git, dimigrasikan dari Subversion, pada gilirannya dimigrasikan dari CVS. fgit (penafian: oleh saya) untuk pull push, statusdan gc.

l0b0
sumber
0

Sudahkah Anda mempertimbangkan untuk membuat semacam infrastruktur awan di sana? Sepertinya satu-satunya cara untuk abstrak dari mana workstation memiliki layanan / file / itu.

Berikut ini tautan ke Ubuntu Cloud .

guiman
sumber
0

Saya menggunakan Wuala sekarang sebagai pengganti Dropbox. Satu masalah adalah kurangnya pemantauan folder di Linux. Ini pada dasarnya memindai semua file setiap menit. Versi selanjutnya harus memperbaikinya, begitu kata mereka.

Sinkronisasi waktu-nyata di Linux bermasalah jika Anda memiliki puluhan ribu folder (mis. Git repositori) karena cara inotify diimplementasikan. Untuk setiap folder tunggal harus ada satu "jam tangan" - lihat misalnya https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux

ert
sumber
Wuala sekarang mati: en.wikipedia.org/wiki/Wuala
Gwyneth Llewelyn