Visual Studion 2019 Community i manualny zapis

0

Witam.

Wyemigrowałem ostatnio ze środowiska RAD Studio od Embarcadero, na microsoftowe Visual Studio 2019 Community i bardzo zaskoczyła mnie jedna rzecz - zapis wszystkich moich modyfikacji wewnątrz projektu następuje automatycznie (i bez pytania) przy każdym budowaniu lub kompilowaniu programu. Wkurza mnie to niezmiernie, bo pisząc kod, lubię testować różne rozwiązania (niekoniecznie dobre), a jak za dużo sobie "napsuję", to po prostu wczytuję projekt ponownie, bez zapisania zmian (to szybsza metoda niż robienie kopii zapasowych czy kopiowanie całych partii kodu). Jakież było moje zdziwienie, gdy po wczytaniu projektu ujrzałem w nim śmietnik, który wcześniej zostawiłem (rujnując dużą część swojej wcześniejszej pracy). Da się coś z tym zrobić? Da się to skonfigurować tak, żeby zapis następował tylko na żądanie?

Znalazłem w internecie kilka poradników, ale one muszą pochodzić z wcześniejszych wersji, bo wskazują na opcje, których w VS 2019 nie ma...

2

Zacznij korzystać z Gita, będzie jeszcze szybciej niż przeładowywanie projektu

2

Nie bardzo rozumiem - jak wyobrażasz sobie budowanie projektu bez zapisywania zmian?

Anyway, na Twoim miejscu użyłbym gita i testowych branchy, dużo łatwiej i wszędzie działa.

0

Czyli z poziomu samego VS nic nie wskóram? Dobrze wiedzieć, dzięki za wskazówkę.

0

Być może da się budować bez zapisywania zmian. Ale przyznam, że nie bardzo rozumiem sens takiego testowania - w końcu nie testujesz zmian jak ich nie kompilujesz.

0

To może wyjaśnię. Chodzi mi o to, że np. mam jakąś funkcję, która działa w określony sposób. Wprowadzam jakieś zmiany, żeby coś tam przetestować. Całość kompiluje się i działa, ale dochodzę do wniosku, że z takiego czy innego względu nie spełnia to moich oczekiwań i jednak chcę powrócić do poprzedniej wersji. W RAD Studio po prostu nie zapisywałem zmian i wczytywałem projekt od nowa, tutaj wszystkie zmiany zapisują się automatycznie. Pewnie to głupota, ale ja nie miałem wcześniej styczności z innymi środowiskami i po prostu nie spodziewałem się takiego zachowania. Działanie na automatycznie wykonywanych przed kompilowaniem backupach (bo prawdopodobnie tak to robi RAD Studio) brałem za coś oczywistego i normalnego.

0

Koniecznie zapoznaj się z git'em (jak w postach wyżej). Jest obsługiwany z poziomu VS więc nie będziesz musiał nawet wychodzić spoza środowiska.

2

git git i jeszcze raz git, nawet jeśli pracujesz w pojedynkę.
Na Windows polecam zainstalować git Extension.
VS ma jakieś pluginy do obsługi git, ale większość znanych mi osób po prostu używa zewnętrznych rozwiązań.
Ja lubię linię poleceń git bash, bo tam mogę zrobić wiele rzeczy, które nakładki UI realizują kiepsko lub wcale i mam pełną kontrolę nad tym co się dzieje. Dla początkującego git bash to może być overkill, ale to ma jeszcze jedną wielką zaletę. Jak masz pytania w sprawie git-a łatwiej wytłumaczyć za pomocą komend zarówno problem jak i rozwiązanie.

Najprawdopodobniej z programowaniem wiążesz przyszłość, ergo nauka git naprawdę nie będzie stratą czasu. git rozwiąże wiele twoich problemów i sumarycznie zaoszczędzi ci czasu.

0

Wprowadzam jakieś zmiany, żeby coś tam przetestować. Całość kompiluje się i działa, ale dochodzę do wniosku, że z takiego czy innego względu nie spełnia to moich oczekiwań i jednak chcę powrócić do poprzedniej wersji. W RAD Studio po prostu nie zapisywałem zmian i wczytywałem projekt od nowa, tutaj wszystkie zmiany zapisują się automatycznie.

Zdajesz sobie sprawę, że kompilacja wymaga zapisu, albo testujesz niezmieniony kod? Nie wiem czy i jak to działa w RAD, ale jest to co najmniej dziwne.

0
kq napisał(a):

Nie wiem czy i jak to działa w RAD, ale jest to co najmniej dziwne.

Akurat kompilacja bez zapisu w RAD Studio jest ok moim zdaniem. To znaczy przydaje się czasami w szczególnych przypadkach. Najczęściej podczas testowania code snipets albo zaklepania jakiegoś małego algorytmu z boku (by potem wkleić do dużego - docelowego projektu), czy sprawdzenia jak działa/wygląda nowy komponent. Tworzę nowy projekt, przeklejam coś ze StackOverflow ;) daję F9 i mam uruchomiony exec z możliwością debugowania nawet niezapisanych unitów. Pamiętam, że poznając inne IDE jak np. Qt Creator strasznie mi to przeszkadzało, że jak chciałem sobie potestować działanie kontrolek, to IDE wymuszało zapis całego projektu który po chwili usuwałem z dysku.

Co innego, że RAD Studio potrafi się czasami wywalić po skompilowaniu oraz uruchomieniu execa. Wtedy zmiany przepadają, a my zostajemy z nową wersją softu bez źródeł tejże wersji :)

Oczywiście zgadzam się z tym co tu zostało napisane przez poprzedników, że taka metoda na sprawdzanie kodu jest co najmniej nietrafiona i GIT jest tu naturalnym rozwiązaniem.

0

Hmm, możesz szerzej opisać mechanizm działania tego kompilowania "bez zapisu"? Bo to co napisałeś brzmi całkiem ciekawie

Odpiszę tutaj, bo na komentarz trochę za mało miejsca.
Niestety nie wiem w jaki sposób ten mechanizm działa, jednak działa. Nie są tworzone żadne tymczasowe pliki na dysku. Domyślnie nowo utworzony projekt ma ścieżki w My Documents\RAD Studio\Projects\ Tu w podkatalogu (Debug lub Release w zależności od wybranej konfiguracji) ląduje wynikowy exe.

Podczas kompilacji w oknie aktualnie kompilowanego unita widnieje ścieżka np. C:\...\Rad Studio\projects\Unit1.cpp (w przypadku nowej aplikacji z jednym oknem unit nazywa się Unti1.cpp). Jakbym zmienił ją na MainForm.cpp z oknie kompilacji miałbym dokładnie taką nazwę. Jednak takowy plik na dysku nie jest tworzony. I to jest dla mnie trochę niejasne. Zupełnie nie mam pojęcia jak ten mechanizm może działać.

Co ciekawe jak podejrzę w oknie komunikatów argumenty wywoływania kompilatora oraz linkera mam te "wirtualne" pliki jako parametry przekazane. Wychodzi na to, że IDE może rzeczywiście tymczasowo zapisywać pliki i dopiero te pliki kompilować. Jednak nie umiem tego wychwycić.

0

Kurcze, to brzmi jak naprawdę fajna funkcjonalność.

0

@kq dla mnie osobiście podoba się taka funkcjonalność i przy przejściu do innych IDE brakuje tego, przynajmniej na początku. Ułatwia szybkie sprawdzenie czegokolwiek ot tak z boku. Tylko jeszcze żeby czasami IDE nie zawieszało się i nie traciło nie zapisanych zmian było by idealnie.

0

Ja do takich rzeczy mam po prostu projekt-sandbox, ale faktycznie widzę, że to może być ciekawe rozwiązanie.

0

VS 2008 chyba tez miało budowanie bez zapisu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1