Toon posts:

[.NET SVN]Update functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit in een ontwikkelgroep waarbij we samen een applicatie bouwen. Hiervoor gebruiken we SVN om de sourcecode te beheren.
De SVN-server is van buitenaf bereikbaar en we willen graag in de applicatie een 'check for updates' functionaliteit in bouwen, die dan de benodigde binairies download en installeert bij een gebruiker.

Nu heb ik al een poosje gezocht maar ik kan niet echt hier iets over vinden. Ik heb wel gevonden dat ik het via het HTTP-protocol en PROPFIND kan doen. Maar ik heb echt geen idee hoe.

De applicatie is MapWindow (GIS Applicatie), locaal gebruik ik Tortoisesvn als SVN-client en op de server draait Apache en Subversion.

Uiteraard vraag ik niet om een kant-en-klare oplossing, maar kan iemand me in de juiste richting sturen waar ik moet zoeken voor voorbeelden? _/-\o_

Alvast bedankt.

Paul

  • Flard
  • Registratie: Februari 2001
  • Laatst online: 20-02 21:36
Ik ben er op het moment ook wel naar op zoek, maar ik weet iig dat er een opensource plugin voor Visual Studio bestaat (AnkhSVN), en deze maakt intern gebruik van NSVN, een .NET-library voor Subversion. Met die library kun je iig op een object-georiënteerde manier bij je SVN Repository.

Ik heb alleen nog geen tijd gehad om nSVN eens onder de loep te nemen...
Als het wat is, of juist niet, dan hoor ik het dus graag :)

[ Voor 4% gewijzigd door Flard op 26-04-2006 15:00 ]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-02 03:31

Gerco

Professional Newbie

Als je SVN draait in een apache2 server (dus via WebDAV), kun je er gewoon met HTTP GET bij hoor. Je kan dan alleen niet zoeken in oude revisies, maar dat lijkt me hiervoor ook niet echt nodig. Bedenk je wel dat hiervoor SVN gebruiken eigenlijk overbodig is en gewoon een up-to-date binary op een HTTP site zetten precies hetzelfde effect heeft?

Plus je loopt het risico dat iemand zo handig is om even al je sourcecode te downloaden, als je toch al open-source werkt maakt dat natuurlijk niet uit, anders is het wel een aandachtspunt.

[edit]
Even op de site gekeken en het is OSS, dus dat is alvast geen probleem. Verder is de svn repos ook gewoon via een browser te benaderen (via HTTP GET dus) en heb je er eigenlijk helemaal niets mee te maken dat er SVN achter draait. Behandel de SVN repos dus gewoon als een HTTP webserver (want dat is het) en alles werkt zoals je verwacht. Heel PROPFIND heb je niet nodig tenzij je in het verleden wil zoeken.

[ Voor 29% gewijzigd door Gerco op 26-04-2006 15:06 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Flard
  • Registratie: Februari 2001
  • Laatst online: 20-02 21:36
HTTP GET is idd nog veel mooier en makkelijker inderdaad :)

Wat dat betreft zou je ook een post-commit hook kunnen bouwen die de laatste versie gewoon upload op een eigen webserver...

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

WebDAV is inderdaad een superset van HTTP, dus je kan het gewoon GETTEN :)

Maar ik neem aan dat je binary niet in de repo staat?

Wanneer wordt je build getriggerd? Handmatig? Of gaat dat automatisch?

Wat je zou kunnen doen is bijvoorbeeld als er een nieuwe tag wordt aangemaakt (waarvan ik dan even aanneem dat dat een distributable versie zou zijn), je build proces triggeren, die gewoon een simpel filetje maakt met het nieuwste versienummer, en een link naar de nieuwste versie.

Je app laat je dan gewoon die versieinfofile binnenhalen, die versie vergelijken met zijn interne versie (die je met keyword substitution erin kan zetten bijvoorbeeld), en als zijn eigen versie kleiner is die nieuwe file binnenhalen.

Verwijderd

Topicstarter
Bedankt allemaal,

De binaries staan volgens mij wel in de repo. In de map 'bin' staan de dll's en de exe en de ocx.
We commiten wel allemaal de code (uiteraard) maar we compilen niet allemaal, dat wordt 'centraal' handmatig geregeld. Dit is ook om het zowel VS2003 als VS2005 compatible te houden.
Het 'probleem' is dat bijna 10.000 keer de installer is gedownload en we zijn druk bezig aan het bugfixen en uitbreiden. Hierdoor zwerven er inmiddels meerdere versies rond. Om dit nog een beetje in goede banen te leiden willen we in de applicatie een opties inbouwen die controleert of er nieuwe versies (stable en/of release candidates) van de verschillende dll's, exe's en ocx-en zijn en die dan automatisch installeert. Zodat de gebruiker er minder omkijken naar heeft en niet steeds de gehele installer hoeft te downloaden.
Maar ik begrijp dat het vrij eenvoudig via een GET moet lukken. Ik zal dat verder gaan uitzoeken. Want ook GETTEN is mij nu nog onbekend.

Bedankt.
Paul
Pagina: 1