Changes between Version 18 and Version 19 of SynBuild


Ignore:
Timestamp:
01/19/17 14:38:33 (7 years ago)
Author:
Edwin Eefting
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SynBuild

    v18 v19  
    6262
    6363
     64= Werken met git versie beheer =
    6465
    65 
    66 == svn tree updaten ==
    67 
    68 Om de wijzigingen van andere developers binnen te halen doe je af en toe een svn update:
    69 
     66Om de wijzigingen van andere developers binnen te halen doe je af en toe een git pull:
    7067{{{
    71 root@builder:/home/psy/syn3# svn update
    72 U    install/install.sh
    73 U    install/lang_nl.sh
    74 U    install/lang_pl.sh
    75 ...
    76 Updated to revision 3421.
    77 
     68psy@ws1 ~/opensyn3 % git pull
     69Already up-to-date.
    7870}}}
    7971
    8072Het is handig om dit regelmatig te doen, en hierna de status te controleren
    8173
    82 == svn nieuwe files en directoryies toevoegen ==
     74Er zijn vele andere commandos om bijvoorbeeld je wijzigingen op te slaan of naar DatuX te versturen.
    8375
    84 Als je een nieuw pakketje gemaakt hebt moet je deze directory markeren als toegevoegd:
    85 {{{
    86 root@builder:/home/psy/syn3# svn add npl/internetserver/ebtables
    87 A      npl/internetserver/ebtables
    88 A      npl/internetserver/ebtables/ebtables.pkg
    89 A      npl/internetserver/ebtables/ebtables.version
    90 A      npl/internetserver/ebtables/ebtables.md5
    91 A      npl/internetserver/ebtables/ebtables-v2.0.8-1.tar.gz
    92 A      npl/internetserver/ebtables/ebtables.SlackBuild
    93 A      npl/internetserver/ebtables/ebtables.arch
    94 }}}
    95 
    96 Dit gebeurd alleen lokaal, pas bij het committen (zie verderop) word de data ook naar de centrale server gestuurd.
    97 
    98 == svn status controleren ==
    99 
    100 Om te zien of het updaten goed gegaan is en om te zien of je wijzigingen gemaakt hebt gebruik je svn status. Dit commando laat de '''locale''' status van je tree zien en doet dus niks met de server:
    101 
    102 {{{
    103 root@builder:/home/psy/syn3# svn status
    104 ?      test
    105 ?      npl/bla
    106 A      npl/internetserver/ebtables
    107 A      npl/internetserver/ebtables/ebtables.pkg
    108 A      npl/internetserver/ebtables/ebtables.version
    109 A      npl/internetserver/ebtables/ebtables.md5
    110 A      npl/internetserver/ebtables/ebtables-v2.0.8-1.tar.gz
    111 A      npl/internetserver/ebtables/ebtables.SlackBuild
    112 A      npl/internetserver/ebtables/ebtables.arch
    113 M      npl/mailserver/syncml_openxchange/syncml_openxchange.SlackBuild
    114 ...
    115 }}}
     76Om te leren hoe git werkt verwijzen we je naar: https://git-scm.com/book/en/v2
    11677
    11778
    118 De eerste en tweede kolom zijn het belangrijkste, zie ook svn status --help:
     79= Vervolg stappen =
    11980
    120     First column: Says if item was added, deleted, or otherwise changed
    121     *  ' ' no modifications
    122     *  'A' Added
    123     *  ''''C' Conflicted'''
    124     *  'D' Deleted
    125     *  'I' Ignored
    126     *  'M' Modified
    127     *  'R' Replaced
    128     *  'X' item is unversioned, but is used by an externals definition
    129     *  '?' item is not under version control
    130     *  '!' item is missing (removed by non-svn command) or incomplete
    131     *  '~' versioned item obstructed by some item of a different kind
     81 * Voor meer info zie over de indeling van de source tree zie SynTree.
     82 * Voor meer info over Syn-3 packets bouwen zie: SynPackaging
    13283
    133     Second column: Modifications of a file's or directory's properties
    134     *  ' ' no modifications
    135     *  ''''C' Conflicted'''
    136     *  'M' Modified
    137 
    138 Let er dus op dat je geen conflicten hebt. Als je dit wel hebt is het het handigste om de conflicteren de file en bijbehorden troep weg te halen en nogmaals update te doen. Een andere optie bij tekstfiles is de boel handmatig mergen.
    139 
    140 == Wijzgingen opslaan op svn server ==
    141 
    142 Hier heb je een account met schrijfrechten voor nodig!
    143 
    144 Als je een aantal wijzigingen gemaakt hebt moet je deze committen (opslaan), onder volgende voorwaarden:
    145 
    146  * Het gewijzigde onderdeel moet compleet zijn en het liefst als 1 geheel gecommit worden. (tenzij je een dag werk hebt, dan mag je een backup-commit doen)
    147  * Niet meer dan 1 onderdeel of wijziging tegelijk committen, bij iedere wijziging duidelijk commentaar!
    148  * Er moet niks stuk gaan waar anderen van afhankelijk zijn.
    149  * Nieuwe onderdelen op de juiste plek in de tree adden. (eventueel vragen aan edwin) Verderop vind je een overzicht van de tree indeling.
    150  * Indien het een pakket betreft, dit pakket eerst rebuilden alvorens te committen indien mogelijk.
    151 
    152 Stel we hebben de volgende status:
    153 {{{
    154 root@builder:/home/psy/syn3/npl/internetserver# svn status
    155 A      ebtables
    156 A      ebtables/ebtables.pkg
    157 A      ebtables/ebtables.version
    158 A      ebtables/ebtables.md5
    159 A      ebtables/ebtables-v2.0.8-1.tar.gz
    160 A      ebtables/ebtables.SlackBuild
    161 A      ebtables/ebtables.arch
    162 A      arptables
    163 A      arptables/arptables.version
    164 A      arptables/arptables.md5
    165 A      arptables/arptables-v0.0.3-2.tar.gz
    166 A      arptables/arptables.SlackBuild
    167 A      arptables/arptables.arch
    168 A      arptables/arptables.pkg
    169 }}}
    170 Zo te zien heb ik 2 nieuwe pakketjes gemaakt, er zijn dus 2 commits nodig:
    171 {{{
    172 root@builder:/home/psy/syn3/npl/internetserver# cd ebtables/
    173 root@builder:/home/psy/syn3/npl/internetserver/ebtables# svn commit -m 'nieuwe pakketje, nodig voor ethernet bridging en firewalling'
    174 Adding         ebtables
    175 Adding  (bin)  ebtables/ebtables-v2.0.8-1.tar.gz
    176 Adding         ebtables/ebtables.SlackBuild
    177 Adding         ebtables/ebtables.arch
    178 Adding         ebtables/ebtables.md5
    179 Adding  (bin)  ebtables/ebtables.pkg
    180 Adding         ebtables/ebtables.version
    181 Transmitting file data ......
    182 Committed revision 3422.
    183 root@builder:/home/psy/syn3/npl/internetserver/ebtables# cd ../arptables/
    184 root@builder:/home/psy/syn3/npl/internetserver/arptables# svn commit -m 'nieuw pakketje, nodig voor firewalling van arp pakketjes'
    185 Adding         arptables
    186 Adding  (bin)  arptables/arptables-v0.0.3-2.tar.gz
    187 Adding         arptables/arptables.SlackBuild
    188 Adding         arptables/arptables.arch
    189 Adding         arptables/arptables.md5
    190 Adding  (bin)  arptables/arptables.pkg
    191 Adding         arptables/arptables.version
    192 Transmitting file data ......
    193 Committed revision 3423.
    194 root@builder:/home/psy/syn3/npl/internetserver/arptables#
    195 }}}
    196 
    197 '''Let op:''' Als je eenmaal iets commit, kan dit nooit meer uit de history verwijderd worden. File en directorys kun je wel uit de tree verwijderen, maar ze blijven uiteraard bestaan in de oude revisie.
    198 
    199 === Wijzigingen opslaan terwijl je geen rechten hebt ===
    200 
    201 Als je geen schrijfrechten hebt in de syn3 tree, kun je je wijzigingen op de volgende manier opslaan in een patch file:
    202 {{{
    203 psy /home/psy/syn3/npl # svn diff > bugfix-ldap.patch
    204 }}}
    205 
    206 Deze file kun je opsturen naar info@datux.nl, waarna hij gereviewed word en eventueel in de tree opgenomen word. Binary files worden niet meegenomen in een diff, daarom is het altijd van belang de orginele url mee naar de sourcefiles mee te sturen!
    207 
    208 = Branches maken =
    209 
    210 Soms kan het handig zijn een zogenaamde ''branch'' te maken.
    211 
    212 Dit betekend dat je een bepaalde directory naar een appart deel op de SVN server kopieerd. Op deze manier kun je langere tijd aan grote wijzigingen werken, zonder dat mensen daar last van hebben.
    213 
    214 == Een nieuwe branch starten. ==
    215 
    216 Stel je bent al een tijdje bezig en je hebt nog niet gecommit. En je denkt: Ik wil dit niet comitten in de hoofd tree (trunk) want dan heeft iedereen last van mijn wijzigingen:
    217 {{{
    218 psy /home/psy/syn3/install # svn status
    219 M      meebezig
    220 }}}
    221 
    222 Kopieer de huidige versie, inclusief wijzigingen naar een branch:
    223 {{{
    224 psy /home/psy/syn3/install # svn copy . https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin
    225 
    226 Committed revision 4292.
    227 }}}
    228 
    229 Nu is er een nieuwe installer branch gemaakt op de SVN server. Om nu te zorgen dat je huidige werkdir aan die branch 'gekoppeld zit':
    230 {{{
    231 psy /home/psy/syn3/install # svn switch https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin
    232 G    meebezig
    233 Updated to revision 4292.
    234 psy /home/psy/syn3/install # svn status
    235 psy /home/psy/syn3/install #
    236 }}}
    237 
    238 Nu is in jou werk directory alleen /home/psy/syn3/install gekoppeld aan de branch. De rest van je tree zit nog gewoon aan trunk:
    239 {{{
    240 psy /home/psy/syn3/install # svn info
    241 Path: .
    242 URL: https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin
    243 Repository Root: https://tracy.datux.nl/syn3/svndav/syn3
    244 Repository UUID: 32fb8cd9-e6f8-0310-8218-8ae0250c70fb
    245 Revision: 4292
    246 Node Kind: directory
    247 Schedule: normal
    248 Last Changed Author: edwin
    249 Last Changed Rev: 4292
    250 Last Changed Date: 2008-11-06 10:31:18 +0100 (Thu, 06 Nov 2008)
    251 
    252 psy /home/psy/syn3/install # cd ..
    253 psy /home/psy/syn3 # svn info
    254 Path: .
    255 URL: https://tracy.datux.nl/syn3/svndav/syn3/trunk
    256 Repository Root: https://tracy.datux.nl/syn3/svndav/syn3
    257 Repository UUID: 32fb8cd9-e6f8-0310-8218-8ae0250c70fb
    258 Revision: 4287
    259 Node Kind: directory
    260 Schedule: normal
    261 Last Changed Author: edwin
    262 Last Changed Rev: 4285
    263 Last Changed Date: 2008-11-03 00:53:54 +0100 (Mon, 03 Nov 2008)
    264 }}}
    265 
    266 Zodra alle commits komen nu dus in je eigen branch, en niemand heeft hier last van.
    267 
    268 == Terug switchen naar trunk ==
    269 
    270 Dit kan zo:
    271 {{{
    272 psy /home/psy/syn3/install # svn switch https://tracy.datux.nl/syn3/svndav/syn3/trunk/install
    273 U    meebezig
    274 Updated to revision 4292.
    275 }}}
    276 
    277 Een switch doet ook meteen een svn update zoals je ziet. Als je nu in de file 'meebezig' kijkt, zie je de trunk versie en niet je eigen branch.
    278 
    279 Op deze manier kan je snel en makkelijk heen en weer switchen tussen trunk en je eigen branch.
    280 
    281 == Je branch terug mergen in trunk ==
    282 
    283 Als je branch zo ver is dat je de wijzigingen in trunk wilt mergen, switch je eerst terug naar trunk en tik je het volgende:
    284 {{{
    285 psy /home/psy/syn3/install # svn merge https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin
    286 --- Merging r4288 through r4292 into '.':
    287 U    meebezig
    288 psy /home/psy/syn3/install # svn status
    289  M     .
    290 M      meebezig
    291 }}}
    292 
    293 Nu zijn de wijzigingen in je werk directory gemerged. Je kan controleren of de merge goed gegaan is en dan een svn commit doen als alles klopt.
    294 
    295 Je kan ook de nieuwste wijzigingen in de trunk naar jou branch mergen, op dezelfde manier. Switch dan eerst naar je branch en merge de trunk.
    296 
    297 
    298 == Huidige grote branches ==
    299 
    300  * Open syn-3 versie 5.x research en development: http://open.syn3.nl/syn3/trac/default/browser/branches/5.x
    301 
    302 = Meer info =
    303 
    304 Voor meer info zie over de indeling van de source tree zie SynTree.
    305 Voor meer info over Syn-3 packets bouwen zie: SynPackaging