Wehikuł czasu a kontrola źródła?


18

W końcu przekonałem się, że zacznę używać pewnego rodzaju kontroli wersji dla mojego kodu zamiast spakować kopię projektu na koniec każdego dnia.

Pobrałem Tortoise SVN i użyłem go do utworzenia lokalnego repozytorium na moim dysku twardym. Używam go już od 2 dni, ale muszę powiedzieć, że korzystanie z niego jest w rzeczywistości bardziej kłopotliwe niż ręczne kopiowanie projektu w Eksploratorze. Jasne, przechowujesz tylko zmiany przyrostowe, ale przy dzisiejszych tanich dyskach nie mogę powiedzieć, że to argument, gdy masz tylko małe projekty. Naprawdę nie znalazłem szybszego sposobu na przeglądanie starszych wersji moich plików.

To, czego chcę, to nieskończone cofanie, które jest całkowicie przezroczyste podczas kodowania, jeśli zapiszę plik, chcę kopię zapasową. Nie chcę się wymeldowywać, zameldować i nawet nie zaczynam przenosić plików. Nie próbowałem Time Machine na OS X, ale wygląda na to, że dokładnie tego szukam.

Czy taki program istnieje dla systemu Windows? Najlepiej za darmo i z jakimś systemem tagowania, dzięki czemu mogę oznaczyć znacznik czasu, gdy projekt działa itp.

Może powinienem dodać, że głównie pracuję sam na jednym komputerze.

Aktualizacja: Niektórzy z was pytali, dlaczego chcę tworzyć kopie zapasowe. Ponieważ pracuję sam, głównie pozwala mi to szybko zhackować rozwiązanie bez obawy, że coś się popsuje.


4
Główna różnica między SCM a Time Machine polega na tym, że w SCM wyraźnie zatwierdzasz i możesz odzyskać wszystkie swoje commity, podczas gdy dzięki Time Machine kopie zapasowe są automatyczne (co godzinę), a niektóre gubią się z czasem: tylko jedna kopia zapasowa na tydzień jest przechowywana na zawsze (i nie wybierasz, który).
mouviciel

2
Myślę, że automatyczne zatwierdzanie przy każdej kompilacji, która kończy się bez błędów, plus etykieta za każdym razem, gdy testy jednostkowe zakończą się pomyślnie, dla wielu programistów w lokalnym oddziale
Ian Ringrose,

1
Problem z jakąkolwiek kontrolą wersji polega na tym, że jeśli jesteś jedynym programistą w tym podejściu, bardzo trudno jest zatrzymać pliki, które nie zostały dodane do systemu kontroli wersji. Posiadanie osobnego serwera kompilacji działa, ale jest o wiele więcej do skonfigurowania. Tworzenie kopii zapasowej WSZYSTKICH plików może być bezpieczniejsze.
Ian Ringrose,

Odpowiedzi:


39

Myślę, że naprawdę nie doceniasz korzyści płynących z kontroli źródła. Jak zauważył Dustin, istnieje rozgałęzianie, łączenie i udostępnianie. Ponadto użycie systemu kontroli źródła pozwala łatwo zorientować się, kiedy ostatnio zmieniono każdy wiersz w kodzie. SVN może również śledzić historię plików, nawet jeśli zostaną zmienione nazwy lub przeniesione do innego katalogu. Scalanie może nawet rozwiązać problemy, nawet jeśli jesteś tylko 1 programistą, ponieważ możesz pracować na komputerze stacjonarnym, laptopie i innych komputerach bez obawy o zastąpienie zmian.


Potrzeba Jeffa (i moja) nie jest zaspokojona przez kontrolę źródła, ponieważ wymaga to ręcznego zatwierdzenia. Warto śledzić zmiany wprowadzane w kopii roboczej z minuty na minutę bez konieczności zatwierdzania każdej minuty. I bez zanieczyszczania repozytorium. Niektóre IDE (jak Eclipse) pozwalają przeglądać pliki projektu w czasie. Ale to wymaga użycia określonego IDE i skonfigurowania projektu. Byłoby miło, gdyby w niezależnym narzędziu była podobna funkcjonalność.
Vimes,

@JohnB SVN ma funkcję o nazwie „Autoversioning”. Pozwala zamontować repozytorium jako standardowy folder WebDAV i za każdym razem, gdy zapiszesz plik, wykona on zatwierdzenie. Jeśli zapisujesz wystarczająco często, możesz skutecznie cofnąć się w czasie do momentu zapisania pliku. Nie jest tak szczegółowy jak coś w rodzaju VS.Net, w którym możesz Ctrl + Z każdego znaku, ale i tak powinieneś oszczędzać co 10 minut. Gdybyś był pojedynczym programistą pracującym nad projektem, prawdopodobnie by się to udało, chociaż nie mam z tym dużego doświadczenia. ( svnbook.red-bean.com/en/1.7/svn.webdav.autoversioning.html )
Kibbee

Dzięki, Kibbee. Widziałem poniżej post VonC na ten temat. To jedna z niewielu opcji, które widziałem, i jedyna darmowa. Poniżej znajduje się kilka dedykowanych produktów, które nie wymagają konfigurowania serwera kontroli źródła, co jest miłe. Ale kosztują pieniądze i wyglądają, jakby mieli więcej dzwonków i gwizdków, niż potrzebuję (lub jeden z nich potrzebuje trochę pracy z interfejsem użytkownika). Najbliższą rzeczą, jaką widziałem, jest to, czego chcę, to DropBox z integracją menu kontekstowego Eksploratora Windows. Domyślnie zapisuje 30 dni historii, a jeśli zapłacisz za funkcję Pack Rat, zaoszczędzisz na czas nieokreślony. Ale to aplikacja w chmurze.
Vimes,

21

To byłoby automatyczne wersjonowanie (aby pozostać przy Subversion):

Autowersjonowanie to funkcja, dzięki której zwykli klienci WebDAV mogą zapisywać na serwerze DeltaV (jak mod_dav_svn), a serwer wykonuje zatwierdzenia w tle. Oznacza to, że jeśli używasz Apache httpd jako serwera Subversion, wówczas większość nowoczesnych systemów operacyjnych może zamontować repozytorium jako udział sieciowy, a użytkownicy nietechniczni otrzymują „przezroczystą” wersję za darmo. (Oczywiście użytkownicy techniczni mogą nadal używać klientów Subversion do sprawdzania historii repozytorium).


2
Zdecydowanie dobra odpowiedź i rozwiązanie podobne do tego, czego chce OP, regularne kopie zapasowe bez wyraźnych zatwierdzeń.

12

Nie należy mylić rozwiązań tworzenia kopii zapasowych z kontrolą wersji. Oba są ważne, ale mają różne cele. To, co powinieneś naprawdę zrobić, to użyć kontroli wersji (svn, cvs, mercurial, git, cokolwiek) i automatyczne tworzenie kopii zapasowej w innym miejscu niż dysk twardy, najlepiej poza witryną (płatny host lub S3). Lub przejdź w 100% zdalnie i znajdź kogoś, kto będzie gospodarzem Twojego repozytorium SVN. Sugerowałbym Unfuddle . Możesz skonfigurować bezpłatne repozytorium SVN bez większych problemów.

Ugryź pocisk i użyj SVN. To może nie być tak łatwe, jak to, do czego jesteś przyzwyczajony, ale kiedy musisz wykonać bardzo konkretne wycofanie lub porównać zmiany między plikami, będziesz zadowolony.



6

Pełne ujawnienie: Pracuję dla Altaro Software.

Jeśli chcesz mieć wehikuł czasu dla systemu Windows, przejdź do „Ups! Utwórz kopię zapasową listy BETA

Jesteśmy nową firmą programistyczną Altaro Software i opracowujemy produkt do tworzenia kopii zapasowych / kontroli wersji oprogramowania o nazwie „Ups! Utworzyć kopię zapasową'. Ups! Backup to hybryda między tradycyjnym produktem do tworzenia kopii zapasowych a lekkim systemem kontroli wersji. Ups! Kopia zapasowa automatycznie śledzi zmiany w dokumentach, zdjęciach i innych plikach oraz umożliwia powrót do dowolnego punktu w czasie. W pewnym stopniu jest to odpowiednik Time Machine na Windows.

Należy pamiętać, że powiedziałem lekką kontrolę wersji - nie jest to produkt, który ma zastąpić właściwy produkt do kontroli wersji. Nasi programiści używają SVN i Ups! Kopia zapasowa w tym samym czasie. Używają VSN do prawidłowej kontroli wersji z funkcjami pobierania / wylogowywania, ale także używają Ups! Kopia zapasowa chwil Ups, które czasami dostają i muszą szybko znaleźć poprzednią wersję pliku bez konieczności przechodzenia przez cały proces kasy.

Dużo zainwestowaliśmy w wrażenia użytkownika ORAZ słodycze - ponieważ rozumiemy, że eyecandy NIE oznacza wrażenia użytkownika.

Wkrótce wejdziemy w BETA i szukamy testerów BETA - każdy, kto chce ją wypróbować, sprawdź http://www.altaro.com/download.php . Na tej stronie można również zobaczyć zrzuty ekranu produktu.

Wasze opinie i konstruktywna krytyka byłyby bardzo mile widziane (chciałbym usłyszeć złe rzeczy ... więcej niż dobre rzeczy)

Jak powiedziałem wcześniej - Ups! Kopia zapasowa nie zastępuje potrzeby odpowiedniego produktu do kontroli wersji - ale ją uzupełnia. Może być używany jako sposób kontroli wersji, ale wtedy nie będziesz mieć odprawy / wyrejestrowania, a rozgałęzienie musiałoby zostać wykonane ręcznie przez utworzenie nowego folderu.

Przepraszam za wtyczkę !!

David Vella - david@altaro.com


Myślę, że lista funkcji to bardzo dobry początek. Czy wsparcie pełnego przywrócenia (podobnie jak w przypadku awarii sprzętu, a wymóg dla Time Machine dla systemu Windows, jeśli chcesz mnie zapytać)? I choć mało kto może się tym przejmować: czy może obsłużyć wiele (redundantnych) dysków z kopiami zapasowymi? A jeśli nie, to jakiś sposób na skopiowanie pełnej kopii zapasowej (jak Time Capsule, ale co zajmuje dużo czasu)? Do kolejnych wydań: Polecam wtyczki do popularnego oprogramowania, które wymaga określonego użycia systemu plików. Podobnie jak w przypadku programów pocztowych: do wyszukiwania i przywracania wiadomości bez wiedzy, w jaki sposób można je znaleźć w systemie plików. Oraz: lokalizacja?
Arjan

Cześć Arjan - nie, nie obsługuje obrazowania dysku (ala Acronis & Ghost) i szczerze mówiąc nie jestem pewien, czy powinniśmy pójść tą drogą - zobaczymy na podstawie opinii. Istnieją już dobre produkty, które można wykorzystać do gołego metalu, więc nie wejdziemy teraz na ten rynek i nie skupimy się na tworzeniu Oops! Wykonaj kopię zapasową najlepszego rozwiązania punktowego na rynku. Zamiast tego skupiamy się na części kontroli wersji - na rzeczywistej zawartości, a nie na warstwie bitowej. Na dzień dzisiejszy mamy podgląd „rozpoznający aplikację”, ponieważ obsługujemy podgląd plików MS Office, zdjęć, plików tekstowych i innych - nadal będziemy je dodawać.
David Vella

Powiedziałem do pewnego stopnia, że ​​jest to odpowiednik Wehikułu Czasu. Z tego, co usłyszałem, najbliżej Apple Time Machine jest Rebit - nigdy go nie testowałem. Na razie tylko w języku angielskim - ale jesteśmy gotowi, aby rozpocząć lokalizowanie. Jeśli chcesz to wypróbować w wersji BETA, wyślij mi e-mail :) David Vella z Malty (Europa) david@altaro.com
David Vella

Po przejrzeniu komentarzy pozostawionych przez „Candice” Genie, czyli Salam: +1 za ujawnienie ;-) ( superuser.com/questions/7423/time-machine-for-windows/… / stackoverflow.com/questions/274948 / time-machine-for-windows /… / serverfault.com/questions/1918/… )
Arjan,

4

Rozwiązanie bardzo podobne do Time Machine zostało zaprezentowane jakiś czas temu w niemieckim czasopiśmie c't. Chociaż sam artykuł jest dostępny za 60 centów, same skrypty są bezpłatne: http://www.heise.de/ct/ftp/06/09/126/

Zasadniczo używa rsync do tworzenia kopii zapasowych danych na zewnętrznym sformatowanym dysku NTFS. Przy każdej nowej kopii zapasowej przechowuje tylko nowe pliki na dysku z kopią zapasową, ale tworzy dowiązania twarde do wszystkiego innego. Skutecznie zobaczysz pełną strukturę folderów dla każdej kopii zapasowej, ale wykorzystaj tylko miejsce potrzebne do pierwszej pełnej kopii zapasowej + wszelkie zmiany, które pojawią się później.

Nie jest tak fantazyjny jak Time Machine, ale jest to ta sama technologia (Time Machine używa rsync, o ile wiem) pod przykryciem.


2

Time Machine to dość zwyczajne rozwiązanie do tworzenia kopii zapasowych / przywracania. Użyj dowolnego narzędzia do tworzenia kopii zapasowych systemu Windows z automatycznymi codziennymi przyrostowymi kopiami zapasowymi i masz prawie to samo. Jednak nawet jeśli możliwe jest przywrócenie poprzednich (codziennych) stanów, może nie być najszybszym rozwiązaniem.


2

SVN nie jest zbyt skuteczny dla programistów solo. Sprawdź BZR . Używam BZR do wszystkich moich osobistych projektów i mojego katalogu domowego, używam SVN tylko do dużego projektu roboczego.


Ciekawy. Czy używasz go z jakimś serwerem, nawet localhost, czy będzie działał tylko z lokalnym systemem plików?
PhiLho,

1
„SVN nie jest zbyt skuteczny dla programistów solo”. To dość ogólne stwierdzenie, nie sądzisz?
mwjackson,

1
jacko, kształć się w alternatywach i zgodziłbyś się.
Dustin Getz,

1
phil, zawsze jest lokalna kopia repozytorium, aby wszystko było szybkie i aby uniknąć problemów z uprawnieniami, ale opcjonalnie wypycha / synchronizuje zdalnie wszystko (udział, strona internetowa, ftp, prawdopodobnie więcej), jeśli / kiedy potrzebujesz pracy z zespołem. przeczytaj stronę internetową.
Dustin Getz

Główną różnicą między BZR i SVN wydaje się być to, że BZR jest rozproszony. Ponieważ OP działa w pojedynkę na jednym komputerze, nie jestem przekonany, że korzyści wynikające z rozproszonej kontroli źródła przeważą nad dodatkową złożonością w tym przypadku.
redtuna

2

Genie Timeline 2.0 jest dostępna od zeszłego tygodnia.

Wiem, wiem, „kolejna wtyczka na osi czasu!” ... ale nie jest.

Oś czasu 2.0 została całkowicie przepisana i do tej pory ogólny konsensus w sieci był bardzo pozytywny.

Co najważniejsze, prawie wszystkie funkcje są dostępne w nowej bezpłatnej edycji Genie Timeline.

Specyfikacje Genie Timeline 2.0 Free: http://www.genie-soft.com/Free_products/free_timeline.aspx

Pobierz: http://download.cnet.com/Genie-Timeline-Free/3000-2242_4-10967059.html?tag=mncol

Płatne wersje produktu dodają szyfrowanie, kompresję i automatyczne czyszczenie starszych kopii zapasowych.

UJAWNIENIE: Byłem liderem projektu w wersji 2.0


+1 za ujawnienie. Zobacz także Time Machine na Windows, który moim zdaniem jest lepszym miejscem do kontynuowania tego pytania.
Arjan

1

Co chcesz zrobić z kontrolą źródła / wieloma kopiami zapasowymi?

Moim zdaniem istnieją dwa powody kontroli kodu źródłowego - zarządzanie konfiguracją i ochrona przed problemami / głupotą palców programistów (co w dużej mierze udowodniłem). Jeśli ten drugi problem, to poniższe sugestie (lub FileHamster, jak zalecono w innej odpowiedzi) wykonają zadanie.

Jeśli, jak sugeruje Dustin Getz, dotyczy zarządzania konfiguracją, gałęzi itp., Wówczas zalecenia SVN lub innego programu do kontroli kodu źródłowego są lepsze niż moje sugestie.

Więc nie użyłem go i nie był darmowy (32 USD), ale pojawił się Google

TrackMyFiles - http://www.trackmyfiles.com/en/features/

  • Automatycznie śledzi i zapisuje zmiany w plikach
  • Umożliwia przeglądanie i przywracanie starych wersji plików
  • Ważne wersje plików mogą być wyraźnie oznaczone
  • Kompatybilny z większością typów plików, takich jak dokumenty Microsoft Word® i prezentacje Microsoft Powerpoint®
  • Wydajne przechowywanie zmian dzięki algorytmowi kompresji delta
  • Zintegrowany z Microsoft Windows® File Explorer dla bezproblemowego działania

Dostępna jest 60-dniowa wersja próbna, zgodnie z tą witryną

Lub, jeśli używasz Visty, masz wbudowaną funkcję kopiowania w tle. Zobacz http://en.wikipedia.org/wiki/Shadow_Copy


1

@Lukman i Paul, podoba mi się pomysł tych uproszczonych systemów kontroli wersji dla zwykłych dokumentów, ale myślę, że błędem jest używanie ich do kodu źródłowego - niemożność rozgałęzienia, scalenia i udostępnienia naprawdę cię powstrzyma.


1
Zależy. Pasuje do tego, o co poprosił PO. Moim zdaniem istnieją dwa powody kontroli kodu źródłowego - zarządzanie konfiguracją i ochrona przed problemami / głupotą palców programistów (co w dużej mierze udowodniłem). Jeśli pierwszy to problem, zgadzam się z tobą. Jeśli drugi, wszystkie te rozwiązania się sprawdzą.
Archetypal Paul,

1

Kilka myśli:

Może ci się spodobać SVK, który wydaje się być wtyczką do SVN. Sam tego nie próbowałem, ale wygląda interesująco.

http://svk.bestpractical.com/view/HomePage

Narzędzia takie jak Trac zapewniają porządne przeglądanie repozytorium SVN i warto je sprawdzić.

Jeśli masz problem ze znalezieniem odpowiedniego żargonu do wyszukania, wyszukaj „migawki”. Możesz również chcieć wbudować jakiś proces archiwizacji do swojego systemu kompilacji, aby za każdym razem, gdy wykonujesz make, automatycznie otrzymywałeś migawkę (lub cokolwiek, co ma sens w twojej sytuacji).


1

Mam cron (wyszukaj google i wybierz taki, który ci się podoba), a następnie skrypt wiersza poleceń, aby uruchamiać pkzipc na moich folderach z sosem co kilka godzin. kiedy przywiązałem początek crona do mojego startupu, właśnie go uruchomiłem i zapomniałem. uratował mnie 1 raz, gdy w późnym nocnym zamrożeniu mózgu napisałem del / f / s * .cs


1

Windows Vista Business, Enterprise i Ultimate mają wbudowaną tę funkcję;)


Jak się nazywa, co dokładnie robi, jakie są kompromisy? Czy może mówisz o kopiowaniu woluminów w tle?
redtuna

1

Warto to sprawdzić, jeśli interesuje Cię Time Machine firmy Apple i masz system operacyjny Windows.

http://www.genietimeline.com

Beta zostanie wkrótce wydana ... Możesz się na nią zapisać ... Nie mogę się doczekać, aż dostanę Genie Timeline ...

Najwyraźniej jego funkcje obejmują Realtime CDP, niekończące się wersjonowanie plików, automatyczne tworzenie kopii zapasowych, integracja okna z rdzeniem ... Od wieków czekam na wydanie tego rodzaju oprogramowania w systemie Windows ...


Recenzja: pc-tutorials.suite101.com/article.cfm/ ... Powiedziałbym, że „automatycznie wykrywaj najczęściej używane pliki użytkownika” to tylko obejście, ponieważ tworzy kopie zapasowe tylko plików utworzonych przez użytkownika . Jak przywrócić cały system? Wydaje się, że nie ma integracji z, na przykład, oprogramowaniem pocztowym. Co zrobić po usunięciu wiadomości? Czy muszę wiedzieć, gdzie i jak e-mail znajduje się na dysku twardym? Czy mogę przywrócić jedną wiadomość? Tworzenie kopii zapasowych praktycznie wszystkiego i integracja z innym oprogramowaniem wciąż sprawia, że ​​Time Machine jest jedyny w swoim rodzaju. Porażka.
Arjan

1

Sugeruję użycie kontroli wersji, którą możesz podłączyć do swojego IDE. Dzięki temu praca z nim jest dziecinnie prosta. Po prostu kliknij aktualizuj / zatwierdzaj w drzewie źródeł i gotowe!


1

Lubię przechowywać i pracować nad moimi projektami za pomocą Dropbox ( http://www.getdropbox.com/ ). nie tylko automatycznie tworzy kopię zapasową twojej pracy, ale także zachowuje poprawki dla ciebie.


Jeśli często zapisujesz, będzie to ogromna strata aktualizacji w repozytorium DropBox.
Patrick Desjardins,

1

Windows Server 2003 i nowsze wersje mają funkcję „ kopiowania w tle ”, która jest podobna do Time Machine, ale przeznaczona jest do pracy w sieciowym środowisku korporacyjnym. Jeśli naprawdę chcesz, możesz skonfigurować to lokalnie.

Byłoby to jednak gorsze rozwiązanie dla dobrej kontroli kodu źródłowego. Dzięki kontroli źródła możesz przeglądać pełną, szczegółową historię każdego wiersza kodu w bazie kodu. Trudno docenić jego wartość, dopóki tego nie wypróbujesz.

Kopiowanie w tle



0

Jeśli dosłownie szukasz „Time Machine dla Windows”: Windows Vista jest dostarczany z Time Warp (to jest kryptonim, zapomniałem, jak nazywa się gotowa funkcja). To właściwie to samo co Time Machine OS X, tylko z mniejszym szumem.


1
Jego nazwa to kopiowanie woluminów w tle i jest zbyt przyjazne dla babci. Możesz wybrać tylko rodzaj plików, które chcesz wykonać kopię zapasową („muzyka”, „zdjęcia” itp.), A nie foldery, które powinien monitorować. Działa tylko raz dziennie, chyba że powiesz mu, aby teraz wykonał kopię zapasową.

0

Wypróbuj Flashbake . Może tworzyć kopie zapasowe co n minut (za pomocą crona i prawdopodobnie Windows Scheduler) plików, które nie zmieniły się w ciągu kilku minut (może być 0). Potrzebny byłby Python, więc Cygwin lub ActiveState Pyton. Opiera się na git i jest przeznaczony dla typów nietechnicznych.


0

Możesz użyć vm i zrobić migawki, zanim wprowadzisz duże zmiany? Cofanie się w ten sposób jest dość bezbolesne - około 5 minut i gotowe :)


vm dla maszyny wirtualnej? ...
Patrick Desjardins,

0

SlickEdit ma przyjemną funkcję podobną do tego, co opisujesz. Za każdym razem, gdy zapisujesz plik, nad którym pracujesz, tworzy on lokalną (różną) kopię zapasową. W wolnym czasie możesz przeglądać lokalną historię plików. Możesz użyć tego do uzupełnienia swojego repozytorium SVN, z którym SlickEdit może się również zintegrować.


0

możesz wypróbować Genie Timeline, to jak wehikuł czasu dla systemu Windows i możesz wrócić do potrzebnej wersji za pomocą suwaka czasu, aby wyświetlić każdą wersję http://www.genietimeline.com


Już dość wtyczek dla Genie.
Arjan



0

Mercurial jest idealny do tej pracy.

Ilekroć chcesz zrobić migawkę kodu, to wszystko, co robisz w wierszu poleceń: hg commit i gotowe!

Jeśli chcesz przeglądać różne wersje pliku, jest to łatwe TortoiseHG graficznemu menu kontekstowemu po kliknięciu danego pliku prawym przyciskiem myszy.

Ponadto jest ładniejszy niż SVN, ponieważ nie zaśmieca wszystkich podfolderów ukrytymi katalogami .svn.


Co jeśli nie chcę spędzać czasu na popisywaniu się, ciągnięciu ... ale po prostu czymś automatycznym, który śledzi każdą zmianę, np. Dokumenty Google, ale lokalne. Co byś zasugerował?
skan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.