155PIN2 Projekt - Informatika 2: Porovnání verzí

Z GeoWikiCZ
Řádek 73: Řádek 73:
  git clone git@geo102.fsv.cvut.cz:sandbox.git
  git clone git@geo102.fsv.cvut.cz:sandbox.git


<!--
 
==== Pracovní cyklus ====
==== Pracovní cyklus ====


; Nastavení editoru
; Nastavení osobních dat a editoru


  export SVN_EDITOR=emacs
  git config user.name "Martin Landa"
git config user.email "martin.landa@fsv.cvut.cz"
git config core.editor "emacs"


; Stažení lokální kopie adresáře projektu ze vzdáleného repozitáře
; Stažení lokální kopie adresáře projektu ze vzdáleného repozitáře


  svn co svn+ssh://uzivatel@josef.fsv.cvut.cz/var/lib/svn/pin2/2009/a pin2-2009-a
  git clone git@geo102.fsv.cvut.cz:pin2.git
cd pin2
git submodule init
git submodule update 2010


; Vytvoření základních adresářů projektu (viz požadavky)
; Vytvoření základních adresářů projektu (viz požadavky)


  cd pin2-2009-a
  cd 2010/a
  svn mkdir dokumentace
  mkdir dokumentace
  svn mkdir src
  mkdir src
  svn mkdir prezentace
  mkdir prezentace
svn ci -m"zakladni adresare projektu"


; Přidání nového souboru
; Přidání nového souboru
Řádek 96: Řádek 100:
  cd dokumentace
  cd dokumentace


  svn add Makefile
  git add Makefile
  svn ci -m"Makefile pro dokumentaci projektu"
  git commit -am"Makefile pro dokumentaci projektu"


; Nahrání změn do vzdáleného repozitáře
; Nahrání změn do vzdáleného repozitáře
Řádek 103: Řádek 107:
:* Před modifikací souborů je vhodné aktualizovat všechny soubory v aktuálním adresáři a tím zabránit případným kolizím při nahrávaní změn do vzdáleného repozitáře.
:* Před modifikací souborů je vhodné aktualizovat všechny soubory v aktuálním adresáři a tím zabránit případným kolizím při nahrávaní změn do vzdáleného repozitáře.


  svn up
  git pull


:* Přehled aktuálního stavu poskytuje příkaz `svn status` (M - modifikovaný soubor, A - přidaný soubor, D - odstraněný soubor)
:* Přehled aktuálního stavu poskytuje příkaz `git status`


  svn status
  git status


<pre>
<pre>
M       Makefile
# On branch master
# Changed but not updated:
#  (use "git add <file>..." to update what will be committed)
#  (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:  Makefile
#
</pre>
</pre>


:* Před nahráním změn do vzdáleného repozitáře je vhodné pro kontrolu zobrazit změny, které jste v lokální kopii provedli
:* Před nahráním změn do vzdáleného repozitáře je vhodné pro kontrolu zobrazit změny, které jste v lokální kopii provedli


  svn diff Makefile
  git diff Makefile


<pre>
<pre>
Index: Makefile
diff --git a/Makefile b/Makefile
===================================================================
index c1b0730..2f43e19 100644
--- Makefile   (revision 116)
--- a/Makefile
+++ Makefile   (working copy)
+++ b/Makefile
@@ -6,3 +6,6 @@
@@ -6,3 +6,6 @@
   
   
Řádek 133: Řádek 143:
:* Nahraní změn do vzdáleného repozitáře
:* Nahraní změn do vzdáleného repozitáře


  svn ci -m"Makefile: pridano pravidlo 'clean'"
  git commit -m"Makefile: pridano pravidlo 'clean'"
 
  git push
; Vytvoření kopie souboru
 
  svn copy Makefile Makefile.old
svn ci -m"Makefile.old jako kopie Makefile"


; Přejmenování/přesunutí souboru
; Přejmenování/přesunutí souboru


  svn mv Makefile.old Makefile.old1
  git mv Makefile.old Makefile.old1
  svn ci -m"Makefile.old prejmenovan na Makefile.old1"
  git commit -m"Makefile.old prejmenovan na Makefile.old1"
git push


; Odstranění souboru (lokální kopie i souboru ve vzdáleném repozitáři)
; Odstranění souboru (lokální kopie i souboru ve vzdáleném repozitáři)


  svn rm Makefile.old
  git rm Makefile.old
  svn ci -m"Makefile.old odstranen"
  git ci -m"Makefile.old odstranen"
git push


; Vrátit provedené změny
; Vrátit provedené změny
Řádek 154: Řádek 162:
:* Před odstraněním změn je vhodné zjistit jejich rozsah
:* Před odstraněním změn je vhodné zjistit jejich rozsah


  svn diff Makefile
  git diff Makefile


<pre>
<pre>
Index: Makefile
diff --git a/Makefile b/Makefile
===================================================================
index c1b0730..2f43e19 100644
--- Makefile   (revision 117)
--- a/Makefile
+++ Makefile   (working copy)
+++ b/Makefile
@@ -2,9 +2,6 @@
@@ -2,9 +2,6 @@
  NAME=dokumentace.tex
  NAME=dokumentace.tex
Řádek 173: Řádek 181:
</pre>
</pre>


:* Odstranění lokální modifikace (tj. přepsání souboru lokální kopie souborem ze vzdáleného repozitáře) se provede příkazem `svn revert`. Tyto změny jsou nevratné!
:* Odstranění lokální modifikace (tj. přepsání souboru lokální kopie souborem ze vzdáleného repozitáře) se provede příkazem `git revert`. Tyto změny jsou nevratné!


  svn revert Makefile
  git revert Makefile


; Přehled provedených změn
; Přehled provedených změn

Verze z 22. 2. 2011, 17:19

Anotace

Předmět navazuje na Projekt - Informatika z bakalářského studia. Studenti jsou rozděleni do skupin, které během semestru pracují na zadaném tématu z oboru geoinformačních technologií.

Skupiny během semestru průběžně prezentují výsledky a postup prací. Semestr je zakončen veřejnou prezentací projektů.

Zadání projektu

Akademický rok 2010/2011

Akademický rok 2009/2010

Akademický rok 2008/2009

Požadavky

  • Výsledek projektu je šířen pod licencí GNU GPL, pokud s touto podmínkou autoři nesouhlasí, musí to explicitně uvést na první straně dokumentace
  • Závěrečná zpráva je uložena do repositáře pin2. Součástí závěrečné zprávy musí být:
    • textová dokumentace ve formátu PDF včetně zdrojového textu, např. LaTeX
    • všechny zdrojové texty strukturované podle potřeby do hierarchie podadresářů
    • se zdrojovými texty překládaných programů musí být dodán vždy soubor Makefile

Struktura adresáře (příklad pro skupinu A rok 2009):

/2009
|
|-/a
  |
  |-/dokumentace
  |-/src
  |-/prezentace
  • Projekt je zakončen veřejnou prezentací
    • K prezentaci se předkládá textová část dokumentace (nemusí obsahovat přílohy), tak aby byla k dispozici a mohla být dána k nahlédnutí přítomným zájemcům
    • Plná dokumentace musí být k datu odevzdání zprávy vystavena v repositáři pin2

Trac

Trac je nástroj pro správu projektu a hlášení chyb. Trac je svobodný software licencovaný pod GNU GPL. Umožňuje integraci systému hlášení chyb, systému pro správu verzi (např. Git) a wiki.

Trac předmětu je dostupný na adrese

http://geo102.fsv.cvut.cz/trac/pin2

Příklad vypsání ticketů pro skupinu 2010/A.

Git

Zdrojové kódy včetně dokumentace jsou uloženy v Git repositáři pin2. Právo zápisu je omezen na členy dané skupiny, přístup pro čtení omezen není.

Návod pro práci s Gitem naleznete zde.

Příklad stažení repositáře

git clone git@geo102.fsv.cvut.cz:pin2.git

a nahraní submodulu pro daný akademický rok

cd pin2
git submodule init
git submodule update 2010

Pro experimenty (seznámení s Gitem) používejte sandbox

git clone git@geo102.fsv.cvut.cz:sandbox.git


Pracovní cyklus

Nastavení osobních dat a editoru
git config user.name "Martin Landa"
git config user.email "martin.landa@fsv.cvut.cz"
git config core.editor "emacs"
Stažení lokální kopie adresáře projektu ze vzdáleného repozitáře
git clone git@geo102.fsv.cvut.cz:pin2.git
cd pin2
git submodule init
git submodule update 2010
Vytvoření základních adresářů projektu (viz požadavky)
cd 2010/a
mkdir dokumentace
mkdir src
mkdir prezentace
Přidání nového souboru
cd dokumentace
git add Makefile
git commit -am"Makefile pro dokumentaci projektu"
Nahrání změn do vzdáleného repozitáře
  • Před modifikací souborů je vhodné aktualizovat všechny soubory v aktuálním adresáři a tím zabránit případným kolizím při nahrávaní změn do vzdáleného repozitáře.
git pull
  • Přehled aktuálního stavu poskytuje příkaz `git status`
git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Makefile
#
  • Před nahráním změn do vzdáleného repozitáře je vhodné pro kontrolu zobrazit změny, které jste v lokální kopii provedli
git diff Makefile
diff --git a/Makefile b/Makefile
index c1b0730..2f43e19 100644
--- a/Makefile
+++ b/Makefile
@@ -6,3 +6,6 @@
 
 pdf:
        $(PDFLATEX) $(NAME).tex
+
+clean:
+       rm -f $(NAME).pdf
  • Nahraní změn do vzdáleného repozitáře
git commit -m"Makefile: pridano pravidlo 'clean'"
git push
Přejmenování/přesunutí souboru
git mv Makefile.old Makefile.old1
git commit -m"Makefile.old prejmenovan na Makefile.old1"
git push
Odstranění souboru (lokální kopie i souboru ve vzdáleném repozitáři)
git rm Makefile.old
git ci -m"Makefile.old odstranen"
git push
Vrátit provedené změny
  • Před odstraněním změn je vhodné zjistit jejich rozsah
git diff Makefile
diff --git a/Makefile b/Makefile
index c1b0730..2f43e19 100644
--- a/Makefile
+++ b/Makefile
@@ -2,9 +2,6 @@
 NAME=dokumentace.tex
 
 all:
-       make pdf
-
-pdf:
        $(PDFLATEX) $(NAME).tex
 
 clean:
  • Odstranění lokální modifikace (tj. přepsání souboru lokální kopie souborem ze vzdáleného repozitáře) se provede příkazem `git revert`. Tyto změny jsou nevratné!
git revert Makefile
Přehled provedených změn
svn log
------------------------------------------------------------------------
r117 | landa | 2010-03-07 18:12:39 +0100 (Sun, 07 Mar 2010) | 1 line

Makefile: pridano pravidlo 'clean'
------------------------------------------------------------------------
r116 | landa | 2010-03-07 18:08:56 +0100 (Sun, 07 Mar 2010) | 1 line

Makefile pro dokumentaci projektu
------------------------------------------------------------------------
r115 | landa | 2010-03-07 18:04:09 +0100 (Sun, 07 Mar 2010) | 1 line

zakladni adresare projektu
------------------------------------------------------------------------

Viz také zobrazení změn v Tracu.

Nastavení svn:ignore
svn propedit svn:ignore .
Výpis vlastností
svn proplist -v .

-->

PostGIS

Pro účel projektu je na serveru 'geo102' zřízena databáze pgis_pin2. Každé skupině je přiřazeno unikátní schéma, např. skupině 'A' v roce 2009 - a09. V projektech se schéma uvádí vždy explicitně pro každou tabulku, tedy např.

SELECT count(*) FROM a09.obce;

Pro potřeby UMN MapServer či QGIS lze k databázi přistupovat jako uživatel 'postgis' s heslem 'postgis1'.

Konzultace

Ing. Martin Landa <martin.landa fsv.cvut.cz> (B802, konzultační hodiny)