Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Kategorie bazy artykułów
Artykuły -> Game Maker
Treść artykułu
SVN - kontrola wersji plików w GM:STUDIO / HTML5
autor: gnysek (3.03.12)
W tym poradniku dowiesz się, jak wprowadzić do swojego projektu kontrolę wersji, dzięki czemu będziesz mógł pracować w zespole równolegle na tym samym projekcie, oraz śledzić zmiany dokonane w kodzie.
Ten poradnik wykorzystuje system kontroli SVN. Chociaż nie oferuje tylu opcji co GIT, SVN jest bardzo prosty w nauce, a GameMaker:Studio w wersji beta wspiera jedynie ten system.

Co będzie potrzebne?

1. Zdalne repozytorium SVN. Darmowe udostępnia kilka serwisów, niestety większość z nich wymaga, aby taki projekt był widoczny publicznie. Dlatego mój wybór padł na Assemblę - ale jeśli znajdziecie jakiś inny hosting, wszystko powinno wykonywać się w ten sam sposób.

2. Tortoise SVN. Wizualny klient SVN dla Windowsa. Jego obsługa jest łatwiejsza niż wpisywanie komend w konsoli - wystarczy kliknąć odpowiednie opcje z menu kontekstowego.
Oferuje też bardzo przejrzysty podgląd zmian, czy rozwiązywanie konfliktów.

Czego się nauczę?

Jak założyć repozytorium, jak wysyłać zmiany w kodzie, jak aktualizować projekt, jak cofać zmiany, jak rozwiązać konflikty, jak podejrzeć zmiany.

Zanim rozpoczniesz ten samouczek, pobierz i zainstaluj TortoiseSVN, oraz uruchom ponownie komputer po jego instalacji! Dopiero wtedy możesz przejść do kroku 1.

Krok 1: zakładamy repozytorium

Rejestrujemy się na stronie www.assembla.com . Klikamy "Utwórz własną przestrzeń roboczą". W kroku 1 z menu po lewej wybieramy "ALL", a następnie "Free Private Subversion Repository" (przycisk "Select").

W "Space Name" wpisz nazwę swojego projektu. Dla mnie będzie to "Kurs Studio SVN". Pola description i tags można pominąć, a sekcji Security nie modyfikujemy (chyba, że chcemy umożliwić wszystkim z zewnątrz wgląd do kodu, lub jego modyfikację). Klikamy "Create", przewijamy na sam dół strony i tam znajdziemy link "Continue to your space".

Przechodzimy do zakładki "Kod źródłowy/Svn". W polu SVN URL jest adres naszego repozytorium. Login i hasło będą takie jak do konta Assembla.

Krok 2: tworzymy projekt z kontrolą wersji

INFO: Jeśli masz już istniejący projekt dla którego chcesz dodać kontrolę wersji, w miejsce kroku w którym utworzymy nowy projekt GM:Studio, po prostu przekopiuj swój projekt.

W dowolnym miejscu swojego komputera, tam gdzie lubisz trzymać projekty, utwórz katalog. np. "Mój Projekt". Kliknij prawym przyciskiem myszy na utworzonym folderze i wybierz opcję "SVN Checkout". W pole "URL of repository" wklej "SVN URL" z assembli i zatwierdź.
Tortoise zapyta Cię o hasło - możesz je zapamiętać, wtedy nie będziesz musiał go podawać ponownie - np. ja nie musiałem wcale, bo mam już w assembli inny projekt.

Jak widzisz w oknie Tortoise, zostały dodane dwa pliki do tego repozytorium - to pliki które zostały domyślnie utworzone przez assemblę jako pierwsza wrzutka.



Nasz projekt umieścimy w folderze trunk. Jest taka zasada, że bierzący kod trzyma się w folderze trunk, a wszelkie jego odnogi w folderach Branch (do ich tworzenia jest specjalna funkcja w Tortoise SVN, jednak tej tematyki nie poruszamy - i jeśli mam być szczery, to branchowanie w systemie GIT bije na głowę to z SVN).

Jak zauważyłeś, ikony folderu w którym zrobiliśmy checkout i wszystko w nim ma teraz w rogu zielone ikonki - oznaczające, że te pliki nie zostały zmodyfikowane. UWAGA! Nie zostały zmodyfikowane na Twoim komputerze, od czasu ostatniej aktualizacji, co nie znaczy, że druga osoba pracująca nad projektem ich nie zmieniła. Pamiętaj aby ZAWSZE przed wysłaniem swoich zmian, zrobić SVN UPDATE - pobiera on wszystkie zmiany z serwera i automatycznie łączy je z Twoimi plikami, jeśli zmiany w kodzie nie naruszają Twoich zmian (np. ktoś edytował inną funkcję czy inny fragment kodu). Jeśli jednak ktoś edytował dokładnie ten sam fragment - powstanie konflikt - ale o tym później - nie martw się, da sie to rozwiązać :)

Teraz otwieramy GM:Studio. Tworzymy nowy projekt w ścieżce:
"Mój Projekt\trunk\Nazwa projektu".

Dodajemy nowy skrypt, zamykamy go i na razie zamykamy Studio. Projekt jest teraz w ścieżce "Mój Projekt\trunk\Nazwa projektu\Nazwa projektu.gmx". Jak widzisz, nowo dodane pliki nie mają żadnych ikonek SVNa. Trzeba je dodać do projektu! Można to zrobić, zaznaczając folder/pliki które chcemy dodać i wybierając z menu kontekstowego. Gdy będziemy robić commit na całym projekcie, również możemy dodać pliki które jeszcze nie są w repozytorium. Jeśli wrócimy do głównego folderu repozytorium (tego w którym jest folder trunk), to widać, że ikonka z zielonej zmieniła się na czerwoną, co oznacza, ze mamy zmiany w projekcie, które nie zostały wysłane na serwer.

Krok 3: aktualizacja projektu

Wybieramy na tej części projektu którą chcemy zaktualizować opcję Commit - która pozwala na wrzucenie plików na serwer. Najlepiej robić to na głównym katalogu ("Mój projekt"), ale można też na podrzędnych, jeśli chcemy wrzucić zmiany tylko z jednego pliku/katalogu.
Tortoise zapyta nas, które pliki chcemy zaktualizować. Podajemy też komentarz do tej wrzutki. Np. "Inicjalizacja projektu". Klikamy OK.

Krok 4: codzienna praca - modyfikacja kodu

Wracamy do Studio. Otwieramy nasz skrypt i wpisujemy "var a;" i zapisujemy projekt. Wracamy do folderu i znów robimy commit.
Teraz, zamiast słowa "added" przy pliku ze skryptem, jest napis MODIFIED. Na pliki z tym statusem można dwa razy kliknąć, aby zobaczyć zmiany wprowadzone od ostatniej wersji.
Dodajemy komentarz - "testowa zmienna". I klikamy OK.
Wracamy do Studio. Zmieniamy "var a;" na "var b;". Znów robimy commit. W oknie Tortoisa kliknij teraz dwa razy na plik "script0.script.gmx" - widzisz? Z lewej strony mam poprzednią wersję pliku, z prawej tą którą chcemy wrzucać. Zaznaczona jest na kolorowo literka "b", bo tylko ją zmieniliśmy. Dzięki podejrzeniu zmian łatwo można sprawdzić, które fragmenty kodu zostały zmienione a które nie. Zamykamy okno z podglądem zmian, dodajemy komentarz "pomyłka" i wysyłamy kod.

Aktualizacja kodu przez inne osoby

Dodatkowe osoby do projektu dodajemy w Assembli w zakładce "Grupa". Każda z tych osób może w ten sam sposób jak powyżej modyfikować kod i wysyłać zmiany.
Jak już powiedziałem, przed wysłaniem zmian zawsze należy zrobić Update. Jeśli tego nie zrobimy, SVN nie pozwoli na wysłanie zmian (chyba, że od czasu naszej ostatniej zmiany nikt nic nie wrzucał). SVN przy Update stara się sam łączyć pliki, jeśli dwóch programistów pracowało na tym samym pliku, nie mniej może zaistnieć sytuacja konfliktu - najczęściej gdy jeden programista wywali kawałek kodu, a drugi do tego starego kawałka coś dodał. Powstaje wtedy konflikt.

Rozwiązywanie konfliktów

Gdy zrobimy update i dostaniemy czerwony komunikat "one or more files in conflicted state", nie należy zamykać okna ze stanem pobranych plików, ale odnaleźć na liście czerwone pliki z konfliktem i dla każdego z nich przeprowadzić tę operację:

Klikamy prawym i wybieramy "Resolve Conflicts". Otwiera się okno podglądu zmian, takie jak przy commicie, ale dodatkowo na dole jest podgląd wersji złączonej obu plików. Teraz dla każdego konfliktu (czerwone), mozemy wybrać z prawym przyciskiem myszy w lewym lub prawym oknie który fragment kodu mamy użyć (theirs to ten z SVN, mine to ten lokalny), ale możemy też edytować plik w tym oknie i wpisać jeszcze co innego (jakbyśmy byli w edytorze kodu). Gdy już rozwiążemy konflikty, zapisujemy plik (ikona dyskietki) i zaznaczamy rozwiązanie konfliktu (ikona trójkąta z haczykiem, oznaczającym zatwierdzenie).

Wykonujemy to dla wszystkich plików.

Oczywiście jeśli zamkniemy po Update okno, konflikty można nadal rozwiązać używając menu kontekstowego SVNa na folderze - np. wybierając opcję "check for modifications" dostajemy listę podobną jak przy commicie - dalej postępujemy jak wyżej.

Rozwiązywanie konfliktów do prostych nie należy - ale w porównaniu do wersji konsolowej, ta i tak jest lepsza...

Gdy wszystkie konflikty są już rozwiązane, można w końcu przeprowadzić Commit.

Wycofywanie zmiany

Wycofywanie zmiany jest dziecinnie proste. Wybieramy na pliku który chcemy cofnąć (lub na całym głównym folderze, jeżeli chcemy cofnąć cały update) opcję Show Log. Na najnowszej zmianie z menu kontekstowego wybieramy "Revert changes from that commit", zatwierdzamy i tyle. Prawda, że proste? W oknie "Show log" można tez zawsze sprawdzić, jakie zmiany były dokonane w ostatnich commitach (każdy commit ma kolejną liczbę naturalną, zwaną numerem rewizji) - klikamy dwa razy na wybranym pliku po zaznaczeniu rewizji i znów w znajomym oknie podglądu różnic widzimy co zostało zmienione.

Używanie Kontroli wersji w Studio.

Obecnie nie ma opcji korzystania z SVN bezpośrednio z programu - należy wykorzystywać Tortoise SVN lub inne programy.
głosów: 5 | ocena: 7.59 oceń zasób | dodał: gnysek
Komentarze
stron: 1

1


av

Uzjel (2:43, 4.03.2012)

Dajesz newsa o jakiś viewach, a o takim dobrym arcie nie. :Nowieszco:
Jest to dostępne teraz w 5PICE?

av

gnysek (14:01, 4.03.2012)

Tak, w obu programach można z tego korzystać, bowiem każdy zasób zapisują w plikach XML (z rozszerzeniem GMX, ale to pliki XML).

Newsa nie dałem, bo... pełna wersja Studio ma mieć dodatkowo obsługę kontroli wersji wbudowaną (a zatem commit i update bezp. z programu)

av

Threef (17:58, 19.04.2012)

Po godzinie prób i błędów udało mi się (chyba) skonfigurować SVN. Teraz Ja i Shil pracujemy na tej samej wersji PentaSphere!

av

gnysek (20:28, 19.04.2012)

Na początku to faktycznie nie jest łatwe. Po paru tygodniach - dziecinnie proste.

av

Threef (20:34, 19.04.2012)

To jest dziecinnie proste, ale jakoś to trzeba to jakoś wytłumaczyć tej drugiej stronie.

av

Threef (20:36, 19.04.2012)

Poza tym czy działa już ten wbudowany? Mi nigdy nie udało się wykonać update.

av

gnysek (21:00, 19.04.2012)

Niby działa, ale wciąż są jakieś problemy - tortoise jest zdecydowanie lepszy

av

Piotrek1910 (1:06, 11.07.2014)

Gnysku co sądzisz o Google Code? Bo też oferują SVN.

av

ΨΧΞ (1:22, 11.07.2014)

Bogowie, SVN - seriously YYG? D:

av

gnysek (11:39, 12.07.2014)

Sądzę, że nie.
Bitbucket + Mercurual/Git i darmowe prywatne repozytorium, ewentualnie Github jak chcesz żeby każdy oglądał. Co prawda zarządzasz wtedy poza GM:S, ale dla mnie to nie robi problemu (ba, nawet ze Studia właśnie czasem gorsze problemy są i lepiej korzystać z CMD lub Tortoisa).

stron: 1

1



Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
175 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 171, userów: 4, ukrytych: 0
hgter, I am vader, Threef, Ignatus

0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
Threef (22:31, 26.07.17):
c:\android było po to aby pełna ścieżka do folderów + argumenty kompilacji były krótsze niż 255 znaków
hgter (21:19, 26.07.17):
Rzeczywiście, masz rację. Czyli powinno dać się gdziekolwiek.
I am vader (21:15, 26.07.17):
proponowali c:\android zeby nie bylo spacji
hgter (21:12, 26.07.17):
Przy 1.4 "silnie rekomendowali" c:\android bo mogły być problemy z aktualizacją - może się zmieniło. Co do rozmiaru u mnie udało się zejść do 5gb (trzeba ręcznie obrazy wywalać)
Ignatus (21:09, 26.07.17):
Nie musi byc na C , ja mam na D i dziala elegancko, choc zajmuje mi to chyba z 20-30gb
I am vader (21:05, 26.07.17):
Na C nie mammeijsca
hgter (20:57, 26.07.17):
Wydaje mi się, że gdzieś kiedyś było, że to ma być C. W dodatko najlepiej C:\Android (i tu dwa katalogi z ndk i sdk)
hgter (20:55, 26.07.17):
Napiszę Ci więcej w wątku, który dodałeś (tym o błędach bo tu niezbyt wygodnie)
I am vader (20:55, 26.07.17):
To ścierwo android studio mi pobiera na C zamiast na F mimo bycia zainstalowany na F, co do K***&%^*&^*%*(
hgter (20:54, 26.07.17):
W tym artykule o gm2 jest też jak zainstalować ndk i sdk ręcznie. I cały ten artykuł w 90% powinien być zgodny z gm1.4.
I am vader (20:52, 26.07.17):
Wszystko wskazuje na to ze tamten sdk manager odszedl w zapomnienie i go usuneli. Z nowego nie wiem jak skorzystac aby pobrac pewne stare wersje ktorych 1.4 wymaga
I am vader (20:50, 26.07.17):
Artykul dotyczacy game makera 2 mowi jak to zrobic uzywajac nowego managera ktory jest wbudowany w android studio, a o to mi nie chodzi. Linki juz wczesniej sprawdzalem i nic mi z tego nie wyszlo.
hgter (20:40, 26.07.17):
Tam jest wszystko: co wybrać przy instalacji i jak potem konfigorować Gm2.
hgter (20:39, 26.07.17):
O tu masz dużo o tym: help.yoyogames....-Up-For-Android
hgter (20:36, 26.07.17):
doświadczeń z dotykaniem czegokolwiek odnośnie Androida w GM - zawsze się wysypie a potem schodzą godziny na naprawę.
hgter (20:35, 26.07.17):
Z tego co wynika ze strony googla powinno być chyba zawarte w android studio: developer.andro...tml#sdk-manager Ale kurde mam wrażanie, że jak ja to konfigurowałem, spory czas temu, to trzeba było ściągnąć ndk oraz sdk i zainstalować bez samego Studio. Natomiast wydaje mi się, że na dole strony: developer.andro...ddingComponents jest możliwość ściągnięcia gołego sdk. Ale nie sprawdzę tego u siebie - ma za dużo koszmarnych doświadcze
I am vader (20:09, 26.07.17):
Wie ktos jak pobrac SDK Managera? Nic w sieci nie mowi jak to pobrac/aktywowac a w instalce Android Studio tego nie bylo
Chell (17:34, 26.07.17):
zartowalem, ale dobra robota xD
I am vader (17:08, 26.07.17):
Smutne troche ze taka propozycja w ogole byla wzieta pod uwage. Trzeba zapraszac uzytkownikow a nie ich wypedzac.
Uzjel (14:55, 26.07.17):
Done
Uzjel (14:52, 26.07.17):
Can do, chyba i tak już zmniejszałem to kiedyś
Chell (12:30, 26.07.17):
proponuję zmienić żeby ikona tematu zmieniała się na hot topic po 2 odpowiedziach
Chell (12:29, 26.07.17):
akurat Shill by się śmiała
nowy_user (10:36, 26.07.17):
Nie mówie już o tym, że wielu nowych userów może odnieść wrażenie , że korzystanie z GMa źle wpływa na męską sprawność.
nowy_user (10:34, 26.07.17):
Hej, czy moglibyśmy zrobić coś z tymi botami? Reklamy specyfików na pobudzenie nie wzburzają mnie jakoś szczególnie( choć prywatnie ich nie stosuję), ale pomyślmy o tym że na nasze forum zaglądają też kobiety i dzieci. Pomyślcie sobie, co musi czuć np. Shill, gdy przypadkiem wejdzie na temat promujący takie specyfiki. Pomyśli sobie że jesteśmy męskimi szownistycznymi osłami.
I am vader (0:50, 26.07.17):
Nie zajmuje sie GM'em 8.0, w zyciu go nie tknalem, a 7.0 i starszych juz nie pamietam. Sam widziales ile problemow bylo przy poprzednim temacie, pomysl ile bedzie przy tym.
LolikZabijaka (0:18, 26.07.17):
A czytałeś drugi post ?
I am vader (23:54, 25.07.17):
Da, ale jeżeli chodzi o Twoj problem to nie dam rady pomoc.
LolikZabijaka (23:49, 25.07.17):
Jest tutaj ktoś ?
Chell (21:15, 25.07.17):
patrze na te wszystkie viagra boty i mysle jak gmclan jest otagowany
ANtY (8:51, 25.07.17):
bodajze 1500 pln
Ignatus (21:53, 24.07.17):
orientuje sie ktos jaki jest koszt mini stoiska indie na PGA?
Chell (21:19, 24.07.17):
zbilbym fortune na tym twoim jednorekim bandycie
ΨΧΞ (20:56, 24.07.17):
i jak nieznosze JSa, tak uwazam, ze niestety bedzie on przyszloscia gier i apek mobilnych :<
ΨΧΞ (20:56, 24.07.17):
a ja pochwale sie zrobieniem przykladowej gry w jednorekiego bandyte w 3 dni w JavaScriptcie od zera - silnik powstal wraz z gra github.com/Psic...slots-in-3-days
tramur (12:28, 24.07.17):
Powiedziałem z niską barierą wejścia, bo stworzenie shoot em upa jest troszke trudniejsze niż w GM'ie na kodach, a co do optymalizacji to nie wiem co masz na myśli.
tramur (12:26, 24.07.17):
;P powiedzoałem
Threef (6:02, 24.07.17):
Nie ma niskiego poziomu wejścia. I wymaga masy optymalizacji
tramur (21:33, 23.07.17):
Ja bym optował za czymś zgoła odwrotnym: PICO-8. Ciekawy koncept mitycznej retro konsolki z niską barierą wejścia, ale jak najbardziej z programowaniem.
Ignatus (17:13, 23.07.17):
Raczej nie
exp (16:21, 23.07.17):
a klocki w game makerze traktujecie jako programowanie?
Fervi  (11:29, 23.07.17):
Jasne, że najlepiej jest nauczyć się ich języka itd. Natomiast coś na kształt uproszczonego Dooma (powiedzmy - w skrócie) można zrobić (teoretycznie) bez żadnej linijki kodu dodatkowej. Bardziej to nie tyle Game Maker typowy co edytor map z językiem programowania
Danielus (10:37, 23.07.17):
Prawda ale chodzi raczej o coś innego. Chodzi o prostotę, im coś prościej zrobić tym łatwiej estymować pracę i tym łatwiej to potem utrzymać. Dlatego firmy ciągnie do języków takie jak C# czy Java. Pamiętaj że to tylko narzędzia i zawsze trzeba wybierać odpowiednie narzędzia jeśli możesz zrobić coś w rok w c# to wybierasz c# niż 5 lat w C nawet kosztem 50% spadku wydajności. Chyba że wydajność jest punktem krytycznym projektu.
Wojo (10:22, 23.07.17):
Aż mnie krew zalewa ale to jest nowe pokolenie programistów - idiotów
Wojo (10:22, 23.07.17):
Czytałem blog jakiegoś barana, który pisał, że C# pomimo, że jest mało wydajny to i tak warto się go uczyć bo teraz RAM bez problemu można dokupić
Wojo (10:21, 23.07.17):
No mniej więcej o to mi chodziło. O uproszczenie, co wiąże się z tym, że ludzie nawet nie myślą o optymalizacji
Danielus (10:19, 23.07.17):
W sensie mam na myśli że na początku taki człowiek dostaje gotowce i jest zadowolny a potem mówi "a mam pomysł żeby tu była taka mechanika" i nagle ludzie się uśmiechają "a to sobie napisz bo na to nie ma gotowca" no i projekt upadł.
Danielus (10:17, 23.07.17):
Zawsze wolałem 2d, jakoś przyjemniej się gra i trochę mi szkoda że nie ma już tak potężnych produkcji 2d jak np homm3 ale cuż :f Programować nadal musisz umieć, zmienia się zakres tego co trzeba umieć bo języki się uproszczają i powstają języki vizualne ale ja to wciąż będę nazywał porgoramowaniem bo wymaga takiego samego myślenia jak zwykłe programowanie. Natomiast ludzi przychodzą robić gry myśląc że to ot tak zrobią i potem płacz że miało być bez programowania
Wojo (10:14, 23.07.17):
No bo 3D to skok technologiczny i daje większe możliwości, a miłośników 2D jest znacznie mniej
Ignatus (10:12, 23.07.17):
Nie wiem co ludzie widzą w tym żę coś jest 3D, jak jest słaby pomysł i mechanika to jeden pies jaki masz widok.Wszyscy amatorzy zakładają że 3D od razu daje grze 3punkty do oceny
Ankieta
» Jakiej wersji GameMakera głównie Używasz?
GameMaker: Studio 2
GameMaker: Studio
GameMaker 8.1 i starsze
Żadnej

GMCLAN to serwis o programie Game Maker i nie tylko.
Copyright © 2002-2017. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!

[ Czas generowania strony: 0.01678 sekund ] [ Liczba zapytań MySQL: 16 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev