[Subversion] Hoe een file ignoren?

Pagina: 1
Acties:

  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 18-04 21:45

bakkerl

Let there be light.

Topicstarter
Ik ben nu een tevreden gebruiker van subversion.
Echter hab ik nu een project waar een config file in zit. Deze config file is per ontwikkelaar verschillend. Er staat alleen een config template in subversion.

Nu probeer ik die config file aan te zo te merken dat na de update, verder ignored wordt door subversion clients. Zodat ik deze kan aanpassen zonder dat die meteen daarna mee wil gaan in de commit (dan krijgen de andere ontwikkelaars weer een verkeerde config).

Onder subversion kun je wel een file ignoren (en daar gaat alle informatie die te vinden is op het internet ook over). Maar dit gaat alleen voor files welke totaal nog niet in subversion zitten.

Kun je een file na een checkout ignoren?

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Veel projecten noemen de template config file iets als config.in.
Je moet dan zelf na een check-out de config.in renamen naar config. Die file kan je vervolgens ignoren. (bij cvs via een .cvs-ignore file).

Misschien is er iets mogelijk met een 'post-checkout'-script om de config.in te renamen.

  • XKB
  • Registratie: Oktober 1999
  • Laatst online: 05-04-2021

XKB

Anonymous functional

kan je je build proces (als dat er is) niet gewoon een config file laten genereren? bijvoorbeeld doormiddel van een propertiesfile die in een nieuwe config gewoon bepaalde waarde substitute? Je gebruikt dan je config file in svn als een template.

Andere oplossing is dat de ontwikkelaars de config file gewoon zelf vullen, a.h.v. de config template in svn.

Choose for Choice! Choose Linux! | src van icon


  • DukeBox
  • Registratie: April 2000
  • Niet online
over het algemeen werkt een junction ook goed voor dat soort dingen.
Oftewel, de config file buiten je cvs omgeving plaatsen. Wat wij ook wel eens doen in de config file d.m.v. een systeem variabele overrulen, dus wanneer systeemvariable x bestaat, config file x gebruiken.

[ Voor 62% gewijzigd door DukeBox op 18-07-2005 08:08 ]


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

little_soundman schreef op maandag 18 juli 2005 @ 02:27:
Misschien is er iets mogelijk met een 'post-checkout'-script om de config.in te renamen.
De hook scripts waar jij op doelt werken alleen aan de server-kant.

De enige manier om dit goed te doen is volgens mij om de config-file als config-sample in je repository op te slaan, en gebruikers hun eigen specifieke config op basis daarvan te laten maken. Als je erover nadenkt is dit ook de beste oplossing, omdat het heel expliciet aangeeft waar het bewuste bestand voor is.

Rustacean


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

code:
1
svn ps svn:ignore test.ini .


test.ini is de file die je wilt verbergen.
De . slaat op de current directory dus je moet in de checked out directory staan.

Op de server kant kan je geen wijzigingen in de commits.

Je kan als extra beveiliging de config file volgens mij ook een lock geven. Dan komt hij nog steeds mee met de checkout en update maar ze kunnen hem niet veranderen. ( SVN 1.2.x alleen ) Ik heb het alleen nog nooit gedaan aangezien ik nog steeds bij SVN 1.1.4 zit.

http://svnbook.red-bean.c...svn.advanced.locking.html

[ Voor 44% gewijzigd door LuCarD op 18-07-2005 09:14 ]

Programmer - an organism that turns coffee into software.


Verwijderd

Een soort gelijk probleem had ik ook toen ik met meerdere mensen aan een java project werkte. Voor de build gebruikten we een ant build script. In dit script zijn verschillende properties gedefinieerd die in principe voor iedere ontwikkelaar voldoende waren. Wil een ontwikkelaar 1 van deze properties overschrijven dan kon daar een build.properties bestand voor gebruikt worden (gewoon ini formaat).

Door dit build.properties bestand gewoon niet to te voegen aan subversion werd deze ook niet gecommit. Een default config werd dus toegevoegd aan het subversion repository, overwrites stonden in een bestand dat niet werd toegevoegd aan subversion, zonder svn ignore dus. Ik weet niet wat het voordeel is van expliciet een svn ignore toe te voegen voor build.properties

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Ik heb een vraag die hier op aansluit en een nieuw topic naar mijn idee niet waard is:

Ik heb in subversion een project zitten wat ik lokaal heb uitgecheckt. Nu heb ik lokaal een directory aan de project directory toegevoegd waar wat eigen bestanden in staan. Deze directory hoeft niet in de subversion repository. Ik zoek dus een ignore property welke alleen lokaal geldt. Andere ontwikkelaars moeten hier geen last van hebben.

Weet iemand of dit mogelijk is, en zoja, hoedan?

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

svn ignore werkt alleen lokaal.

Er is geen server side ignore.

Programmer - an organism that turns coffee into software.


  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Zolang je die directory niet toevoegt aan subversion dan heeft toch niemand daar last van?

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

LuCarD schreef op donderdag 27 oktober 2005 @ 16:55:
svn ignore werkt alleen lokaal.

Er is geen server side ignore.
Maar die properties die je instelt gaan wel mee in de commit en dus krijgen andere programmeurs ze terug met een update.
grhmpf schreef op donderdag 27 oktober 2005 @ 17:02:
Zolang je die directory niet toevoegt aan subversion dan heeft toch niemand daar last van?
Maar dan krijg ik elke keer die directory als non-versioned in mijn client (tortoisesvn) te zien.

[ Voor 34% gewijzigd door jelmervos op 27-10-2005 18:25 ]

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Kaassoevlee schreef op donderdag 27 oktober 2005 @ 18:25:
[...]

Maar die properties die je instelt gaan wel mee in de commit en dus krijgen andere programmeurs ze terug met een update.
Maar hij gaat niet mee met de commit aangezien hij een ignore flag heeft. En hij staat nog niet in de repository.

Programmer - an organism that turns coffee into software.


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Maar de ignore flag van een directory staat toch in de parent directory bij de properties, althans, dat is zou als ik via TortoiseSVN een niet versioned directory toevoeg aan de ignore list.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Er is een config-bestandje voor je Subversion client, met daarin onder andere de optie global-ignores. Daarmee zou je de directory alleen op je client kunnen negeren, maar dan worden ook alle directories met dezelfde naam in andere working copies genegeerd. Als je Windows gebruikt vindt je het bestand ergens in je Documents & Settings\User\Application Data\Subversion ofzo (op Linux oid vindt je het in ~/.subversion/) en het heet simpelweg config.

Rustacean


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Dat geldt dat dan voor alle repositories? En worden deze alleen lokaal genegeerd (dus dat andere ontwikkelaars er niks van merken)?

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:06

Creepy

Tactical Espionage Splatterer

Kaassoevlee schreef op vrijdag 28 oktober 2005 @ 08:59:
Dat geldt dat dan voor alle repositories? En worden deze alleen lokaal genegeerd (dus dat andere ontwikkelaars er niks van merken)?
Doe eens gek, test het gewoon eens uit.

Maar ja, als jij dat globaal in je client (turtoise) in stelt dan geldt dat voor alle repositories en alleen lokaal. Dus als je achter een andere PC gaat zitten zal je dit opnieuw moeten instellen. Let erop dat als je een ingore pattern toevoegd waarvan er al bestanden in een repository zitten dit dus niet met terugwerkende kracht wordt verwerkt.

"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

Pagina: 1