Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Subversion : Eigen repo updaten met ander mans repo

Pagina: 1
Acties:

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Hoihoi


Allereerst: ik ben me ervan bewust dat SVN client-server is (itt git/darcs etc) en maar 1 repo per working copy ondersteunt. En toch wil ik kijken of ik wat aan mijn situatie kan doen.

Ik ben atm bezig met een project waarbij ik een eigen SVN server en working copy (wc) heb.
Deze wc bevat een aantal copien van een stuk code.

Deze code wordt extern ontwikkeld (open source project) en op de SVN van dat project gehost, ik heb hier een export van gemaakt en die vervolgens geadd in mijn repo.
Ik heb geen commit-rechten ofzo op de externe SVN, alleen anonymous checkout.


Nu ben ik lekker aan het dev'en gegaan , en blijkt dat zij hun SVN ook updaten (logisch).
Is het mogelijk om de code in mijn repo (die dus een export is van hun SVN) weer te updaten naar de huidige SVN versie?


Ik zou een checkout kunnen doen van hun code en alles gaan diffen, maar het zijn vrij veel files. Dat lijkt me niet handig.

Weet iemand hier een handige truc voor?

  • Kanarie
  • Registratie: Oktober 2000
  • Laatst online: 02:18

Kanarie

תֹ֙הוּ֙ וָבֹ֔הוּ

SVN Externals is wat jij zoekt volgens mij.

[ Voor 36% gewijzigd door Kanarie op 20-08-2009 16:58 ]

We're trapped in the belly of this horrible machine. And the machine is bleeding to death.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 28-11 22:43

Creepy

Tactical Espionage Splatterer

In het SVN redbook hebben ze het over zogenaamde "Vendor Branches" inclusief een flinke lap tekst met uitleg hoe je er mee zou kunnen omgaan: http://svnbook.red-bean.c...vn.advanced.vendorbr.html

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
@Creepy: jep dat lijkt hem te zijn. Dank voor de tip :).
@Kanarie: ik heb de metadata van de externe SVN *niet* meegenomen (omdat ik export doe) en mijn eigen metadata gebruikt. Volgens mij is dat iets anders dan externals. Lijkt ook een oplossing te zijn.
Tijd om te lezen dus :).


edit2:


ik zit ook even te twijfelen of dit doet wat ik wil.
Om het feest compleet te maken bestaat mijn repo grofweg uit dit:

orginele-source
aangepaste-source1
aangepaste-source2
aangepaste-source3
aangepaste-source4

Waarbij aangepaste-source* een tag\branch is van de originele source. Elk van die varianten is net iets anders (en heeft een ander doel, ondanks dat het dezelfde software is).

Het zou het mooiste zijn dat als ik de originele source update (die dus bij de externe partij vandaan komt) mijn branches ook meekomen. Of ben ik nu lastig?
Ik link dus niet allene tegen de externe code aan (voorbeelden hierboven...) maar ik maak er dus verschillende branches van omdat ik die software wat uitbreid. Ondertussen zijn de makers ook nog bugs aan het fixen etc erin.


edit3:

Idee:

ik maak een external genaamd external-trunk aan waarvan ik 4 branches maak.
Die kan ik vervolgens met de hand mergen.
Lekker fijn, maar volgens mij de beste oplossing.

[ Voor 80% gewijzigd door Boudewijn op 20-08-2009 17:34 ]


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Voor het nageslacht:

Ik heb http://jeremyknope.com/20...version-externals-basics/ gelezen, en de manual.
Nu doe ik in een schoon repo (in de root ervan):

svn co http://simplesamlphp.googlecode.com/svn/trunk/ external-trunk
svn propedit svn:externals .
En daarin:
external-trunk http://simplesamlphp.googlecode.com/svn/trunk/


Ik ga straks netjes vanaf de external-trunk branchen, en dan werkt alles zoals het moet :).

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Update, ik ben een beetje vastgelopen ermee.


Ik heb external-trunk als external aangemerkt en wil daar nu vanaf branchen (zodat ik in mijn branches ook mooi de patches van de externe ontwikkelaars meekrijg):
code:
1
2
3
$ svn cp external-trunk/ ucp1
svn: Cannot copy to '.', as it is not from repository 'http://simplesamlphp.googlecode.com/svn';
it is from 'https://svn.boudewijnector.nl/svn/afstuderen'

Maw : ik kan geen svn cp doen van een external.


Weet iemand hier een workaround voor?


Uit de manual van 1.1 , in die van 1.5 wordt het niet genoemd.
Also, since the definitions themselves use absolute URLs, moving or copying a directory to which they are attached will not affect what gets checked out as an external (though the relative local target subdirectory will, of course, move with renamed directory). This can be confusing—even frustrating—in certain situations. For example, if you use externals definitions on a directory in your /trunk development line which point to other areas of that same line, and then you use svn copy to branch that line to some new location /branches/my-branch, the externals definitions on items in your new branch will still refer to versioned resources in /trunk. Also, be aware that if you need to re-parent your working copy (using svn switch --relocate), externals definitions will not also be re-parented.
http://svnbook.red-bean.com/en/1.1/ch07s04.html


als ik een vendor branch aanmaak met:

svn mkdir vendor
svn import vendor <URL van andere svn repo> dan moet ik alsnog authenticeren.

* Boudewijn snapt er echt geen kloot meer van.

[ Voor 54% gewijzigd door Boudewijn op 21-08-2009 15:09 ]


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Update schopje, iemand?
Het is weer maandag en ik zie het effe niet zitten :X

[ Voor 55% gewijzigd door Boudewijn op 24-08-2009 12:54 ]

Pagina: 1