Správa verzí, synchronizace a zálohování

prezek

  • ***
  • 229
    • Zobrazit profil
Správa verzí, synchronizace a zálohování
« kdy: 14. 11. 2013, 10:41:55 »
Zdravím, většinou píšu programy pro mikroprocesory v NetBeans a jednotlivé programy spravuji pomocí subversion (v NetBeans stačí 3 kliknutí na commit, nebo update a jednoduše se dostanu k historickým souborům). Pracuji ve Windows XP a rád bych si zautomatizoval synchronizaci s notebookem a zálohování (často zapomenu z notebooku zazálohovat data a když je potřebuji, tak notebook leží vypnutý 10 km ode mě).
Zatím synchronizuji a zálohuji ručně přes svn server (který běží na Rapsberry Pi). Svn adresář na serveru občas zabalím do tar.gz a zazálohuji na email. Co doporučujete? Zůstat u svn, nebo přejít na git či jiný správce verzí? Synchronizovat a zálohovat pomocí správy verzí a adresář občas zabalit a uložit na jiný HW, nebo používat rsync, rdiff-backup apod?
Díky, Petr


Kolemjdoucí

Re:Správa verzí, synchronizace a zálohování
« Odpověď #1 kdy: 14. 11. 2013, 10:53:28 »
Centrální VCS repository ke kterému vývojáři přistupují z různých zařízení je lety prověřená klasika která určitě není špatně. To, že je toto centrální repository nutno zálohovat je jasné. Myslím tedy že to máš nastavené v základu dobře, a detaily jako jaké konkrétní VCS  repository použít (SVN se mně osobně líbí) a jak konkrétně ho zálohovat jsou už podružné, určitě ale dokáží vyvolat solidní flamewar. ;-)

hergot

Re:Správa verzí, synchronizace a zálohování
« Odpověď #2 kdy: 14. 11. 2013, 10:55:48 »
No tak rozhodne doporucuji git. Muzes si nastavit vic serveru takze celkem jednoduse muzes pushovat veci na vice serveru a potom z nich aktualizovat. Nebo dalsi moznost je zalozit si ucet na githubu a jet pres nej - ten je dostupny vsude.

prezek

  • ***
  • 229
    • Zobrazit profil
Re:Správa verzí, synchronizace a zálohování
« Odpověď #3 kdy: 14. 11. 2013, 11:24:05 »
Díky. V současnosti mě nejvíc trápí to, že zapomínám spustit commit, takže plánuji zautomatizování procesu (commit všech projektů každou hodinu a před vypnutím počítače a update při zapnutí). A taky mi vadí, že když jsem offline, tak se nedostanu k historickým datům. Umožňuje svn nebo git mít všude synchronizovaný celý repozitář?

Re:Správa verzí, synchronizace a zálohování
« Odpověď #4 kdy: 14. 11. 2013, 11:40:22 »
ten problem kdyz jses offline resi prave git, mas kopii celyho repozitare u sebe a muzes commitovat i kdyz jses offline

jinak v gitu se muzes dostat na ten svuj stavajici svn pomoci git svn, takze je jednoducha prenositelnost
jo a v gitu mas zalohu vsude, kde ten repozitar pouzivas, protoze kazdej, kdo s repozitarem pracuje, ma uplnou kopii

takze jednoznacne doporucuju git


Ivan

Re:Správa verzí, synchronizace a zálohování
« Odpověď #5 kdy: 14. 11. 2013, 11:41:38 »
Díky. V současnosti mě nejvíc trápí to, že zapomínám spustit commit

Pouzivam SVN(sourceforge) i git (Github). Prestoze mam moznost provozovat to na vlastnim serveru tak uz me to proste nebavi.
Git pouzivam pro programovani a ne proto abych spravoval a konfiguroval nejaky server.

Pro oboji pozivam na woknach Tortoise. Ten ma plugin do exploreru (Prozkumnika) a nad kazdym souborem a adresarem ukazuje bud "zelenou fajfku" anebo "cerveny vykricnik". Kdyz vidim cerveny vykricnik na adresari s projektem tak si hned vsimnu ze jsem neco zapomnel commitovat.


BoneFlute

  • *****
  • 2 047
    • Zobrazit profil
Re:Správa verzí, synchronizace a zálohování
« Odpověď #6 kdy: 15. 11. 2013, 12:24:03 »
Řeším podobný problém.

Zautomatizovat se to moc nedá, přotože, pokud nemám některé věci commitlé, a pušnuté (používám git a mercurial), tak k tomu asi mám důvod.

Takže jedinou věc, kterou jsem zatím vymyslel je disciplína.

Re:Správa verzí, synchronizace a zálohování
« Odpověď #7 kdy: 15. 11. 2013, 12:50:21 »
bohuzel stale existuji jedinci a firmy pouzivajici ten relikt minuleho tisicileti... mimochodem git je v netbeanech stejne pohodlny jako svn. akorat s tim rozdilem, ze si commitujes i sebemensi zmeny a na server ti staci pushnout (treba vecer) vice commitu najednou. neresis kdy jsi offline a kdy online. neni to brutalne line.

automatizovat commit je imho blbost. automatizovat push - mohlo by bejt. hlavne je super moznost mit vic serveru(jeden svuj prave na zalohovani a dalsi treba u klienta na odevzdani prace).
Děkuji za možnost editace příspěvku.

Hans

Re:Správa verzí, synchronizace a zálohování
« Odpověď #8 kdy: 15. 11. 2013, 14:32:21 »
Díky. V současnosti mě nejvíc trápí to, že zapomínám spustit commit, takže plánuji zautomatizování procesu (commit všech projektů každou hodinu a před vypnutím počítače a update při zapnutí).

To není dobré. Commit bys měl dávat jen tehdy, pokud máš kompilovatelnou verzi. Jinak se v tom ztratíš.

prezek

  • ***
  • 229
    • Zobrazit profil
Re:Správa verzí, synchronizace a zálohování
« Odpověď #9 kdy: 15. 11. 2013, 17:07:05 »
Taky už mi došlo, že bych neměl commitovat každé uložení souboru, ale možná by nemuselo být špatné doplnit commit do makefile za úspěšnou kompilaci.

Jimm

Re:Správa verzí, synchronizace a zálohování
« Odpověď #10 kdy: 15. 11. 2013, 19:23:07 »
Já bych tedy přestal zálohovat na e-mail. Je to takové znásilnění informačních technologií. :)

Re:Správa verzí, synchronizace a zálohování
« Odpověď #11 kdy: 16. 11. 2013, 17:25:15 »
no, git je sam o sobe takovej, ze je to i de facto skvelej zalohovaci nastroj

prezek

  • ***
  • 229
    • Zobrazit profil
Re:Správa verzí, synchronizace a zálohování
« Odpověď #12 kdy: 16. 11. 2013, 23:43:57 »
Já bych tedy přestal zálohovat na e-mail. Je to takové znásilnění informačních technologií. :)
Taky se mi to nelíbí. Rád si nechám doporučit alternativu. Google Drive? Dropbox? CD/DVD?

Re:Správa verzí, synchronizace a zálohování
« Odpověď #13 kdy: 17. 11. 2013, 08:11:13 »
Jestli to chápu správně, problémy jsou dva:
1. zapomínáš commitovat před vypnutím komplu
2. zálohování na mail se ti nezdá elegantní

To jsou dvě ruzné věci. Ten druhý problém se tady řešil mockrát a na webu najdeš spousty návodů. Řešení závisí na tom, co od toho chceš a jaké máš k dispozici prostředky (tím nemyslím peníze, ale jestli máš třeba někde nějaký druhý servřík s dostatečnou diskovou kapacitou apod.)

V tom prvním  by ti možná mohl git pomoct. Protože v gitu je branchování levné a přehledné, můžeš mít branch, ve kterém commituješ často a až to jde zkompilovat a nějak rozumně to funguje, mergneš to do jiné větve (buď jako jednotlivé commity nebo jako celek pod jedním commitem). Standardní model branchování je tenhle: http://nvie.com/posts/a-successful-git-branching-model/
Tak jako tak nesmíš zapomenout na push, ale aspoň to zvládneš jedním příkazem, můžeš to udělat kdykoli (pokud commituješ do nějaké dirty větve) a je to rychlé.

Jinak asi těžko poradit, když nepíšeš, co přesně ti na současným systému nevyhovuje.