Vra

Wanneer die gebruik van Ondermyning (svn) vir bron beheer met verskeie projekte ek het opgemerk dat die hersiening getal verhoog oor al my projekte " dopgehou.Om te illustreer my svn uitleg (met behulp van fiktiewe projek name):

    /NinjaProg/branches
              /tags
              /trunk
    /StealthApp/branches
               /tags
               /trunk
    /SnailApp/branches
             /tags
             /trunk

Wanneer ek voer'n verbind aan die stam van die Ninja Program, kom ons sê ek dat dit is opgedateer om hersiening 7.Die volgende dag kom ons sê dat ek'n klein verandering aan die Stealth Aansoek en dit kom terug as hersiening 8.

Die vraag is dit: Is dit algemeen aanvaarde praktyk, wanneer die handhawing van verskeie projekte met een Ondermyning bediener, het onverwante projekte se hersiening aantal verhoog oor al die projekte? Of doen ek dit verkeerd is en moet wees die skep van individuele bewaarplekke vir elke projek?Of is dit iets heeltemal anders?

EDIT: Ek vertraag in die verligting van'n antwoord, want dit het duidelik geword dat daar is redes vir beide benaderings, en selfs al is hierdie vraag het eerste gekom, ek wil graag om te wys op'n paar ander vrae wat uiteindelik vra dieselfde vraag:

Moet ek slaan al die projekte in een bron of mulitiple?

Een SVN of baie?

Was dit nuttig?

Oplossing

Ek is verbaas nie het genoem dat dit is bespreek in die Weergawe Beheer met Ondermyning, wat is gratis beskikbaar aanlyn, hier.

Ek lees oor die kwessie'n rukkie terug en dit is werklik lyk soos'n saak van persoonlike keuse, daar is'n goeie blog post oor die onderwerp hier.EDIT: Sedert die blog verskyn om af te wees, (die argief weergawe hier), hier is'n paar van wat Merk Phippard te sê gehad het op die onderwerp.

Hierdie is'n paar van die voordele van die enkele bron benadering.

  1. Vereenvoudig administrasie.Een stel van hakies te sit.Een bron te rugsteun.ens.
  2. Tak/tag buigsaamheid.Met die kode alles in een bron dit maak dit makliker om te skep'n tak of tag waarby verskeie projekte.
  3. Beweeg-kode maklik.Miskien het jy wil om te neem'n afdeling van die kode van een projek en gebruik dit in'n ander, of draai dit in'n biblioteek vir verskeie projekte.Dit is maklik om te beweeg van die kode in die dieselfde bron en behou die geskiedenis van die kode in die proses.

Hier is'n paar van die nadele van die enkele bron benadering, voordele aan die verskeie repository benadering.

  1. Grootte.Dit mag dalk makliker wees om te gaan met'n baie kleiner bewaarplekke as een groot een.Byvoorbeeld, as jy aftree, 'n projek wat jy kan net die argief bewaarplek tot die media en verwyder dit van die skyf en vry te maak van die stoor.Miskien het jy nodig het om te stort/laai'n bewaarplek vir een of ander rede, so as om voordeel te trek van'n nuwe Ondermyning funksie.Dit is makliker om te doen en met minder impak as dit is'n kleiner repository.Selfs as jy uiteindelik wil om dit te doen na al jou repositories, dit sal minder impak te doen hulle een op'n tyd, in die veronderstelling daar is nie'n dringende behoefte om dit te doen alles op een slag.
  2. Wêreldwye hersiening nommer.Selfs al is dit moet nie'n probleem te wees, het sommige mense sien dit om een te wees en hou nie van om te sien die hersiening aantal vooraf op die repository en vir onaktiewe projekte te groot gapings in hul hersiening geskiedenis.
  3. Toegang beheer.Terwyl Ondermyning se authz meganisme kan jy om te beperk toegang as wat nodig is om dele van die repository, dit is nog makliker om dit te doen by die bron vlak.As jy'n projek wat slegs'n paar individue moet toegang, dit is makliker om te doen met'n enkele bron vir die projek.
  4. Administratiewe buigsaamheid.As jy het verskeie repositories, dan is dit makliker om te implementeer verskillende haak skrifte gebaseer op die behoeftes van die repository/projekte.As jy wil uniform haak skrifte, dan'n enkele bron dalk beter wees, maar as elke projek wil sy eie pleeg e-styl, dan is dit makliker om die projekte in aparte bewaarplekke

As jy regtig dink oor, die hersiening van getalle in'n meervoudige projek repository gaan om te kry'n hoë, maar jy is nie van plan om uit te loop.Hou in gedagte dat jy kan sien'n geskiedenis op'n sub-gids en vinnig te sien al die hersiening getalle wat verband hou met'n projek.

Ander wenke

Ek dink dit word sterk aanbeveel dat jy afsonderlike bronne vir elke projek te skep. As vir niks anders as om die scenario wat jy praat oor vermy.

Met weergawe beheer, veral Subversion, kan jy maklik check stukke van 'n bewaarplek in 'n ander werk kopieer en dan pleeg hulle terug na hul onderskeie bronne. Wat jou toelaat om hulle duidelik afsonderlike en aparte hou terwyl gee jou 'n groot mate van buigsaamheid. Sodra jy in SVN 'n bietjie meer (ek neem aan jy nuut is.) Kan jy begin met behulp van hakies en ek kan sien waar dit moeilik met jou setup kon kry. Indien toestemming vir jou belangrik is, kan 'n enkele bron bewys moeiliker as wat nodig is.

Ook, as jy bekommerd is dat dit 'n baie tyd elke bewaarplek kyk na die SVNParentPath veranderlike vir die Apache konfigurasielêer sal neem om te installeer. (Weereens, ek neem aan jy gebruik Apache.)

Dit is te danke aan hoe ondermyning werk. Elke hersiening is regtig 'n momentopname van die repository geïdentifiseer deur daardie hersiening nommer. As al jou projekte te deel 'n bewaarplek dan is dit onvermydelik. Tipies, in my ervaring, maar jy sou opstel afsonderlike bronne vir heeltemal onverwante projekte. So kort antwoord is nee jy niks verkeerd om dit te doen is 'n algemene vraag rondom ondermyning maar dit maak sin as jy dink oor hoe dit repository inligting stoor.

Die hersiening nommer moet regtig net'n identifiseerder vir'n spesifieke weergawe.Of dit se opeenvolgende vir'n projek of nie moet nie saak nie.Dit gesê, ek kan verstaan dat dit is minder as ideaal.

Die meeste projekte wat ek nog teëgekom het is ingestel in'n enkele bron en die hersiening id's op te tree in hierdie manier.Ek weet nie enige SVN opset opsie om hierdie gedrag te verander, en IMHO, die handhawing van verskeie bewaarplekke lyk soos'n onnodige oorhoofse.

Ons het net een bron met alles wat daarin is, pretty much presies soos jou voorbeeld.

Ek kan nie sien niks verkeerd met hierdie - die enigste vereiste vir die hersiening aantal is dat dit

  • Unieke
  • Atoom
  • Groter as wat dit was in die laaste checkin

Dit maak nie saak of dit verhoog deur 1 of 50 met mekaar verbind sover dit my aangaan.

@grom:

  

Toe wanneer ek 'n nuwe projek begin ek hardloop net:

     

svnadmin create /var/www/svn/myproject

Ek kan sien hierdie werk goed as jy net het 1 of 2 devs, maar wat gebeur as die mense wat die skep van nuwe projekte nie dop toegang op die SVN bediener moet in staat wees om gidse onder / var skep / www?

Aanbevole om afsonderlike bron per projek te gebruik. In my Apache conf.d gids Ek het subversion.conf wat bevat:

<Location /svn>
  DAV svn
  SVNParentPath /var/www/svn

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /var/www/svn/password
  Require valid-user
</Location>

Toe wanneer ek 'n nuwe projek begin ek hardloop net:

svnadmin create /var/www/svn/myproject

Hm, waar ek werk het ons al ons projekte in dieselfde bron. Ek het regtig nie sien die voordeel van hulle te skei, nie dat net skep 'n baie ekstra werk -creating nuwe bronne, die verlening van toegang tot mense, ens? Ek dink afsonderlike bronne sinvol as die projekte is heeltemal onverwante, en jy, sê, eksterne kliënte wat moet toegang tot die repokoers het.

Op my werkplek, het ons twee bronne. Een met openbare toegang lees, en een vir alles anders. Ek sal gebruik net een vir alles, maar ons verskillende toegang regte vir openbare / private projekte nodig.

Dit gesê, ek persoonlik nie die probleem sien met die hersiening getalle die verhoog op elke update. Die hersiening getalle kan prima en ewe getalle te slaan en nog doen wat sy veronderstel is om te doen. Maak dit maklik om 'n spesifieke hersiening kry.

As met die hersiening getalle verandering wat gebaseer is op ander projekte pla, sit dan die projekte in afsonderlike bronne. Dit is die enigste manier om die hersiening getalle onafhanklik te maak.

Vir my is die groot rede om verskillende bronne te gebruik is om afsonderlike toegangsbeheer vir gebruikers en / of die gebruik van verskillende haak skrifte voorsien.

Miskien is dit beter om nie te noodwendig maak een repo per "projek" nie, maar eerder 'n repo per "oplossing" (om Visual Studio terme gebruik). As jy 'n klomp van die "projekte" in verskillende dopgehou, maar hulle is verwant aan mekaar, sit dit dan in dieselfde repo.

Ek slaan een projek per repository, en soos 'n vorige opmerkings op hierdie subversion vraag , ek merk gedeel projekte as eksterne, sodat hulle net in bron beheer keer.

Ek is net besig om 'n GI bou bediener (CruiseControl.NET) by te voeg, so ek sal maar moet sien hoe dit alles werk uit, maar as my bou skrifte is reg behoort dit nie 'n probleem te wees nie.

Behalwe voorkoms al is, dit is regtig 'n kwessie van voorkeur (in my opinie).

  

As jy regtig dink oor die hersiening nommers in 'n veelvuldige   projek repository gaan hoog te kry, maar jy is nie van plan om te hardloop   uit. Hou in gedagte dat jy 'n geskiedenis kan sien op 'n sub gids en   vinnig sien al die hersiening nommers wat verband hou met 'n projek.

Eintlik as jou gebou Microsoft-kode, en jy die svn hersiening getalle te gebruik as 'n deel van jou weergawe string dan kan jy loop uit. Microsoft samesteller sal gooi 'n fout indien enige deel van die weergawe string is groter as 65.535 .... In ons geval het ons 'n massiewe bron by hersiening 68876 en ons getref net hierdie muur.

Een repository per projek.

Steven Murawski se kommentaar oor CC.NET is 'n interessante een. Ek sou graag wou hoor hoe dit werk as jy nodig het om 'n paar bron beheer repositories spesifiseer.

@Daniel Fone: Die SVN docs beveel een projek per bron, so dit is beslis die pad die skeppers bedoel dit om te gaan. As jy een bediener (apache of svnserve) kan hê in stand te hou verskeie bronne, het ek nog nooit loop in 'n probleem van te veel oorhoofse. Met VisualSVN Server , die installering van 'n Apache en die instel van verskeie bronne is 'n sprong.

Ek is nie seker dat die SVN docs eintlik een projek aanbeveel per repository. Meestal hulle praat oor die upsides en nadele van elke pad. Ek gebeur om drie verskillende bronne, een vir 7 of 8 projekte wat almal verwant gebruik, maak dit baie lekker om in staat wees om versoenbaar afskrifte van al die projekte uit te stuur net deur die bou van 'n hersiening (of die verifikasie van hulle is versoenbaar deur te kyk by die hersiening nommers op elk). Die tweede bron het 'n ander groep van verwante projekte en dokumente, terwyl die derde is 'n veel kleiner een. Waarmee ons neem voordeel van die feit dat die verwante projekte kan bestuur word deur 'n enkele hersiening nommer, maar wat niks projekte het geen invloed op hul repository.

Die hersiening-nommers het geen semantiese gebruik. Die enigste ding is, dat hulle in volgorde. As jy jou projek te stort en voer dit in 'n ander bron, kan u weergawes nuwe hersiening-nommers kry. So NOOIT gebruik die hersiening-nommers om jou uitgawes of soortgelyke dinge te merk. Maak etikette vir vrystellings (afskrifte van die betrokke hersiening).

het dieselfde probleem in my vorige maatskappy, wat hulle gebruik om te hê soos 50 projekte loop in een bron en dit was 'n nagmerrie om te werk op dieselfde projekte as gevolg van wanneer jy svn updates ander sou vervloek .... lol .. .

Een ding wat ek geleer het wat altyd werk uit die beste, 'n projek Een Repo .... jy sal nooit spyt wees nie.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top