2009-12-14 13 views
29

Przepraszam za to okropne, okropne pytanie .. ale nie ma sposobu, aby nie używać VSS.Używanie Git z Visual Source Safe 6.0

Chciałbym móc używać Git lokalnie do tworzenia gałęzi itp. Przy użyciu Visual Source Safe 6. Moja wiedza na temat wszystkich tajników Git jest obecnie ograniczona, ponieważ jestem ostatnio konwertować.

Pytanie:
Co chciałbym być w stanie zrobić to praca w repozytorium Git. Chciałbym to zrobić i zdobyć wszystkie gadżety, które pozwolą na rozgałęzienie itp. Pod koniec dnia lub w innych potrzebnych chwilach chciałbym móc wziąć wszystko, co robię i umieścić je do głównego repozytorium, które następnie umieściłbym w VSS.

Idealnie, na początku dnia pracy otrzymam najnowszą wersję VSS. Zatwierdź to Git .. następnie pracuj na alternatywnej gałęzi, wprowadzając zmiany z powrotem do wzorca, kiedy muszę zatwierdzić VSS.

Bycie tym, że jestem względną nowicjuszką GIT, co może być najlepszym sposobem na osiągnięcie tego .. wraz z najlepszymi poleceniami do wydania/sposobu na ustawienie tego.

* uwaga: Source Safe wymaga sprawdzenia pliku przed wprowadzeniem zmian. Myślę, że. Może jest jakieś narzędzie/skrypt, którego mogę użyć, aby zautomatyzować to, aby ponownie wprowadzić zmiany w VSS?

+1

Wiem, że to śmierdzi. Po prostu szukam najłatwiejszego sposobu na zrobienie tego i utrzymanie ładnego repozytorium Git, i wrzucam moje zmiany z powrotem do VSS w odstępach czasu. –

+7

+1. Czuję ten sam ból każdego dnia :(Dlaczego na Ziemi kiedykolwiek wynaleziono VSS? – ereOn

+0

miłe pytanie +1, mam ten sam ból głowy, co wszyscy teraz masz – cctan

Odpowiedz

8

Konfiguracja, którą rozważasz, powinna działać poprawnie. Aby uzyskać polecenia git, po prostu sprawdź samouczki.

Workflow Użyłem (nie z VSS, ale idea jest taka sama) jest coś takiego jak:

  • Checkout od main (tjVSS)
  • przechowywać jeden "bagażnik" oddział, który jest zsynchronizowany z VSS
    • będzie zawsze czyste
  • Develop w oddziałach rozgałęzione od "pnia"
  • aktualizacji z VSS:
    • przełącznik z "pnia"
    • aktualizacja z VSS
    • git commit zmiany
    • rebase gałęzie, które są rozgałęzione z pnia
  • przekazać zmiany do VSS:
    • zmian wypychania z gałęzi rozwojowej na „bagażniku”
    • przełącznik na „bagażniku”
    • VSS zatwierdzić zmiany
+2

W jaki sposób obejść VSS, muszę mieć pliki wyrejestrowane że wie, co zrobić ... i na tym samym pliku, które są dodawane? –

+1

hmm, masz rację, twardy (nie myślałem specjalnie o VSS). Prawdopodobnie napisałbym skrypt, który patrzy na pliki zmienione od czasu ostatniej synchronizacji (zmodyfikowane/dodane/usunięte) i odpowiednio dodają/kasują/usuwają za pomocą interfejsu VSS wiersza poleceń – orip

+0

Myślę, że masz rację. Aby zrobić to "prawo", będę musiał zbudować kilka skryptów, które zajmą się tymi rzeczami Zdecydowanie będzie wyzwaniem –

2

Każdy zatrzymany z VSS może znaleźć następujące po przydatna, gdy masz do czynienia z oddziałami:

http://timwise.blogspot.com/2011/11/multiple-working-folders-for-git-on.html

Zasadniczo szczegóły korzystania SysInternals' Junction dostać dowiązania symbolicznego wsparcia w systemie Windows, a następnie dzieląc repo git między fizycznymi katalogów branżowych VSS wymusza na Tobie kopiowanie plików w folderze .git i symlinkowanie folderów.

A oto skrypty do automatyzacji wymiany

0

Ja również złapany w to, tak jak ja to jest nie mieć inni dotykają mojej VSS i wszystkie pliki są sprawdzane przez cały czas, co oznacza, że ​​nikt inny nie może wnosić wkładu, więc nie jest to naturalnie możliwe rozwiązanie dla wszystkich. Rozwiązanie proponuję jest to, że:

  • Chekout od VSS
  • Tworzenie oddziału do pracy w funkcji
  • Stań na swojej funkcji
  • Przełącz do głównego oddziału
  • aktualizacji najnowszy VSS
    • Po dokonaniu jakichkolwiek zmian należy ponownie utworzyć oddział pod numerem
  • Zobacz jakie pliki są zmieniane za pomocą $ git diff --name-status master..branchName (patrz Showing which files have changed between two revisions do źródła tego)
  • Sprawdź zmienionych plików przy użyciu VSS
  • Merge swój oddział na mistrza (najlepiej Usunięcie gałęzi funkcja)
  • Zobowiązanie się do VSS

Niektóre z nich mogą być w stanie wykreślić wyjście, ale ponieważ prawdopodobnie używasz M $ (od kiedy używasz VSS), nie jest to coś, w czym mogę ci pomóc.

Sposób działania VSS Myślę, że lepiej byłoby zminimalizować czas spędzony z plikami wyrejestrowanymi z VSS i dlatego jest to lepszy sposób.

Pamiętaj, że mogą wystąpić pewne problemy z aktualizacją plików, ponieważ VSS automagicznie ustawia flagę readonly na pliki, które nie są wyrejestrowane. Może być potrzebne obejście tego problemu.