Hackerboard WikiHaboBlog

[HaBo]

 
Applikationen Probleme mit Anwendungsprogrammen aller Art gehören hier hin.

subversion (svn) ignore

Diskussion: subversion (svn) ignore im Forum Applikationen, in der Kategorie Software Home; hi, benutze für ein neues projekt subversion als versionskontrollsystem. funktioniert ganz gut, bis auf das ignorieren. eine datei ignoriere ich ...

Antwort
Alt 26.08.10, 23:35   #1 (permalink)
 
Registriert seit: 04.04.05
BlackSpring Leistung: Facit NTK
BlackSpring eine Nachricht über ICQ schicken
Likes: 0
Standard subversion (svn) ignore


hi,

benutze für ein neues projekt subversion als versionskontrollsystem.
funktioniert ganz gut, bis auf das ignorieren.
eine datei ignoriere ich folgendermaßen:

Code:
cd trunk/settings/
svn propedit svn:ignore .
settings.php # wird in nano eingegeben und gespeichert
auch die überprüfung
Code:
svn propget svn:ignore
liefert mir dann
Code:
settings.php
zurück.

allerdings scheint das ganze überhaupt keinen effekt zu haben. wenn ich die settings.php nun bearbeite, wird sie bei
Code:
svn stat
gelistet (M settings/settings.php) und auch beim commit wird die datei mit übertragen, sodass ich die änderungen manuell wieder rückgängig machen muss.

was mache ich falsch? ich würde gerne die settings.php editieren, ohne dass sie beim commit übertragen wird (ignorieren halt)

danke schonmal
BlackSpring ist offline   Mit Zitat antworten
Alt 27.08.10, 01:03   #2 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: 8086xeno Leistung: 8086
xeno eine Nachricht über ICQ schicken
Likes: 65
Standard

Vielleicht macht es einen Unterschied, wenn du das propedit aus dem Root-Pfad deines SVN ausführst, also 'svn propedit trunk/settings/' und dann erst die settings.php definierst. Nur eine Vermutung, bin nicht wirklich mit SVN vertraut. Mit GIT ist das scheinbar viel einfacher
xeno ist gerade online   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 27.08.10, 11:38   #3 (permalink)
 
Registriert seit: 12.08.10
mime Leistung: 8086mime Leistung: 8086
Likes: 22
Standard

Zitat:
Zitat von BlackSpring Beitrag anzeigen
was mache ich falsch? ich würde gerne die settings.php editieren, ohne dass sie beim commit übertragen wird (ignorieren halt)
Dateien, die sich bereits unter SVN Versionskontrolle befinden, können nicht ignoriert werden.

Workaround:

cp <datei> /tmp
svn delete <datei>
svn ci -m ''
cp /tmp/<datei> .
svn propset svn:ignore '<datei>' .
svn ci -m 'new ignore'

HTH

Micha
__________________
http://www.openvas.org
mime ist offline   Mit Zitat antworten
Alt 27.08.10, 13:51   #4 (permalink)
 
Registriert seit: 12.08.10
mime Leistung: 8086mime Leistung: 8086
Likes: 22
Standard

Zitat:
Zitat von xeno Beitrag anzeigen
Mit GIT ist das scheinbar viel einfacher
Nö.

Git zeigt da das gleiche Verhalten. Wenn die Datei schon von Git verwaltet wird, wird sie trotz Hinzufügen in ".gitignore" weiterhin beachtet. Du musst "git rm --cached <Datei>" ausführen, um die Datei im Verzeichnisbaum zu behalten und sie dann ignorieren.

Micha
__________________
http://www.openvas.org
mime ist offline   Mit Zitat antworten
Alt 27.08.10, 15:22   #5 (permalink)
Themenstarter
 
Registriert seit: 04.04.05
BlackSpring Leistung: Facit NTK
BlackSpring eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Zitat von mime Beitrag anzeigen
Code:
cp <datei> /tmp
svn delete <datei>
svn ci -m ''
cp /tmp/<datei> .
svn propset svn:ignore '<datei>' .
svn ci -m 'new ignore'
aber beim commit wird doch die <datei> auf dem server gelöscht, was ungünstig wäre
BlackSpring ist offline   Mit Zitat antworten
Alt 27.08.10, 15:30   #6 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Speichere einen Prototyp der Configdatei (z.B. settings.php.default) in der Versionsverwaltung und stelle die echte Configdatei in das ignore-File.
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
Alt 27.08.10, 15:41   #7 (permalink)
 
Registriert seit: 12.08.10
mime Leistung: 8086mime Leistung: 8086
Likes: 22
Standard

Zitat:
Zitat von BlackSpring Beitrag anzeigen
aber beim commit wird doch die <datei> auf dem server gelöscht, was ungünstig wäre
Wenn du die Datei unter Versionskontrolle halten willst, kannst du sie eben nicht ignorieren. Pest oder Cholera...such dir was aus.

http://svnbook.red-bean.com/nightly/...special.ignore
Zitat:
Die Untersstützung für ignorierbare Dateimuster in Subversion erstreckt sich lediglich auf die einmalige Handlung, unversionierte Dateien und Verzeichnisse unter Versionskontrolle zu stellen. Sobald ein Objekt unter Kontrolle von Subversion ist, haben die Ignorier-Muster keine Auswirkungen mehr auf das Objekt. Mit anderen Worten: erwarten Sie nicht, dass Subversion die Übertragung von Änderungen verhindert, die Sie an einer versionierten Datei vorgenommen haben, nur weil der Name dieser Datei auf ein Ignorier-Muster passt - Subversion beachtet stets alle seine versionierten Objekte.
HTH

Micha
__________________
http://www.openvas.org
mime ist offline   Mit Zitat antworten
Alt 27.08.10, 21:14   #8 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: 8086xeno Leistung: 8086
xeno eine Nachricht über ICQ schicken
Likes: 65
Standard

Nicht dran gedacht, daß die Datei schon unter der Versionskontrolle steht... wieder was gelernt
xeno ist gerade online   Mit Zitat antworten
Alt 29.08.10, 20:53   #9 (permalink)
 
Benutzerbild von rami
 
Registriert seit: 09.02.08
rami Leistung: Facit NTK
rami eine Nachricht über ICQ schicken rami eine Nachricht über Skype™ schicken
Likes: 0
Standard

Zitat:
Zitat von mime Beitrag anzeigen
Git zeigt da das gleiche Verhalten. Wenn die Datei schon von Git verwaltet wird, wird sie trotz Hinzufügen in ".gitignore" weiterhin beachtet. Du musst "git rm --cached <Datei>" ausführen, um die Datei im Verzeichnisbaum zu behalten und sie dann ignorieren.
Doch. Wenn du eine Datei lokal änderst, musst du sie nicht in einen Commit packen („git add“) und kannst alle Änderungen bis auf die an dieser einen Datei committen („git commit“ und nicht „git commit -a“, vorher halt alle gewünschten Änderungen „git add“-en). Das heißt, du kannst die Konfigurationsdatei lokal bearbeiten, aber die Änderung nur im Working Tree haben. In SVN musst du, wenn du committest, gleich alle Änderungen im Working Tree seit dem letzten Commit committen - oder garnichts. Das ist m.E.n. das Problem, der Threadersteller ansprach und das ich auch schon oft hatte (und einer der vielen Gründe ist warum SVN beschissen ist und Git rockt, um es mal deutlich zu sagen).

Kann aber auch sein, dass mein SVN-Wissen zu beschränkt ist, und ich kenne das gesuchte Feature nur nicht.

P.S.: Die Konvertierung und Migration von SVN zu GIT ist dank „git svn“ absolut einfach und erspart dir (aufaddiert) Tage deprimierter und wütender Zeit in deinem künftigen Leben.
__________________

Geändert von rami (29.08.10 um 20:57 Uhr)
rami ist offline   Mit Zitat antworten
Alt 01.09.10, 01:13   #10 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Datei als Kopie anlegen und auf dieser Kopie arbeiten. Es ist doch wohl logisch, dass eine Versionsverwaltung auch die Dateien tracken will, die aus dem Repository ausgecheckt wurden. Ignore greift daher nur bei Dateien, die noch nicht im Repository sind. Was ausgecheckt und geändert wurde, muss auch wieder eingecheckt werden. So einfach. Dass GIT dies nicht so handhabt, hat mich schon immer aufgeregt. Flexibilität hin oder her, aber wenn die Entwickler keine ausreichende Disziplin an den Tag legen, sorgt es ständig nur für Probleme, wenn irgendwer seine Änderungen nur teilweise eincheckt, weil er irgendwelche Dateien in Ausnahmelisten gepackt hat. Ich sehe das daher nicht als Schwäche von Subversion sondern als Schwäche von Git. Eine Versionsverwaltung soll schliesslich auch für konsistente Daten sorgen, wo alles, was zu einer Version gehört, auch zusammen gehalten wird. Git kann dies nicht, weil es ermöglicht an der Versionsverwaltung vorbeizuarbeiten. Wie man sowas als Feature darstellen kann, ist mir rätselhaft. Für mich ist das ein Bug.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 01.09.10, 11:33   #11 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Komplette Commits die pauschal mal alles einchecken sind sowieso sehr gefährlich. Da übersieht man mal schnell eine kleine Änderung am Code zu Testzwecken oder so.
Gerade bei solchen Sachen zeigen halt Tools wie z.B. TortoiseSVN (wenn man nicht eh mit Eclipse oder so arbeitet) ihre Stärke. Da brauch ich nicht versuchen irgendeine Datei in irgendwelche Ignorelists zu packen, ich mach einfach das Häckchen vorm Commit weg. Fertig
odigo ist offline   Mit Zitat antworten
Antwort

Stichworte
commit, ignore, subversion, svn
   

Werbung ist gerade online    

[HaBo] » Software Home » Applikationen » subversion (svn) ignore
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61