# Subversive - Dateien ausschließen



## reibi (15. Jan 2010)

Hallo

Weiss jemand wie ich bei subversive einmal sagen kann, dass er grundsätzlich Dateien wie ".classpath" ignorieren soll..

und zweitens, wie ich einem bestimmten Verzeichnis wie "target" sagen kann, dass es svn-mässig ignoriert werden soll?

Grüssli


----------



## byte (15. Jan 2010)

svn:ignore

Musst Du vor dem ersten Einchecken setzen.


----------



## reibi (15. Jan 2010)

geXl ;-)

nur wo kann ich das hinschreiben? Gibts in Subversiv da irgenwo ne Eingabemaske? Perspektive/Sicht/Popup?

Grüssli


----------



## maki (15. Jan 2010)

Rechtsklick auf die Datei -> Team -> Add to svn:ignore

Oder gleich die SVN Proeprties ändern


----------



## reibi (15. Jan 2010)

Hi maki
das geht eben nicht !
kuck:




vielleicht wenns mal im svn drin ist. das wär aber grad zu verhindern


----------



## maki (15. Jan 2010)

So wie es aussieht aus dem Bild ist gar nix in deinem Projekt in SVN eingecheckt.. da kann man natürlich nix in SVN konfigurieren 

So als Tipp, setze die .settings, .classpath & .project auch auf svn:ignore, da du Maven2 nutzt bist du ohne diese Dateien besser dran


----------



## reibi (15. Jan 2010)

Hi Maki:



> So wie es aussieht aus dem Bild ist gar nix in deinem Projekt in SVN eingecheckt



Genauso siehts aus ! Ich will es auch gar nicht einchecken.

Das wär doch auch blöd, es  erst einchecken zu müssen um es dann auf die ignoreliste zu setzen ...oder?


----------



## reibi (15. Jan 2010)

>>Genauso siehts aus ! Ich will es auch gar nicht einchecken.

Also das PRJ will ich ja schon einchecken, blos die paar dateien nicht ...;-)


----------



## maki (15. Jan 2010)

reibi, wenn du das Projekt eincheckst ("sharst"), kannst du do auswählen welche Dateien eingecheckt werden sollen und welche nicht, danach kannst du erst mit svn:ignore arbeiten


----------



## reibi (15. Jan 2010)

ohh ;-) ... klar ... wer kucken kann is klar im Vorteil ... probier ich grad mal aus... danke


----------



## reibi (15. Jan 2010)

ok ... also das funktioniert beim "target"-Verzeichnis....weil ich das sehe. Aber nicht bei ".project" und bei ".classpath", weil die im Packageexplorer ja nicht angezeigt werden.

Wie mache ich das denn da?

Also vor meinem Project zeigt er den svn-Pfeil an.


----------



## maki (15. Jan 2010)

Dafür solltest du die "*.resources" im Navigator nicht mehr filtern, dann siehst du diese auch.


----------



## reibi (15. Jan 2010)

>>Resourcen filtern im Navigator
Hi Maki, das will ich aber auch nicht.

Aber hab was anderes rausgefunden:
Am Anfang, wo das Fenster kommt, wo man sagen kann diese Datei und diese nicht, kann man ja bei der Datei die man nicht will, den Hacken rausmachen. Das ist ja auch bei jedem commit so. Bei diesem Fenster kann man auch mit rechts auf die Datei drücken und "add to svn:ignore" drücken. Das ist einfach


Danke an alle für Eure Hilfe
Gruß und schönes WE


----------



## bygones (31. Mai 2010)

maki hat gesagt.:


> Rechtsklick auf die Datei -> Team -> Add to svn:ignore
> 
> Oder gleich die SVN Proeprties ändern


ich heb mal kurz den Thread wieder hoch.

Bei mir das selbe Problem - es sollen gewisse dateien per se nicht eingecheckt werden und ich will dies nicht bei jeder Datei erneut eingeben.

Somit bleiben die SVN Properties übrig .. richtig ?

In Subversive gibts ja die "Properties Configuration" -> "Custom properties": Erstell ich dann einfach eine property namens "svn:ignore" - nur wie schaut dann der Wert aus ?

maven-eclipse mässig will ich .classpath/.project etc und das komplette target directory ignorieren....

danke !


----------



## maki (31. Mai 2010)

Du kannst natürlich komplete alle Ordner die target heissen auf ignore setzen per wildcard, aber dann solltest du keinesfalls ein package mit diesem namen haben 
Deswegen setze ich die immer einzeln auf ignore: target, .settings, .classpath, .project, es lohnt sich dafür die .* ressources nicht zu filtern.


----------



## reibi (31. Mai 2010)

Hi

Also genau wie du annimmst:

Ich hab ein SVN-Property was so aussieht:

name= svn:ignore
value= folgendes im Block mit den 3Minuszeichen
---
target

.classpath

.project

conf

.settings
---

Kannste was damit anfangen?
Bei mir siehts so aus, dass ich das PRJ ja sowieso im Eclipse anlege und vor dem ersten einchecken drück ich einfach auf "Team/Add to svn: ignore".

Schnallen tuts das svbn erst dann wenn dus commitet hast. weil "add to svn:ignore" keine aktion zum svn auslöst sondern lediglich das property setzt bzw erweitert.


Gruss ;-


----------



## bygones (31. Mai 2010)

ja danke dir... versteht er es dann dass "target" den ganzen Folder betrifft und eine beliebige Datei XYZ in "target" auch ignoriert wird ?

was is das PRJ ? 

Ziel ist es durch die Definition dass ich einfach ein Projekt einchecken kann ohne noch explizit irgendwas angeben zu müssen.


----------



## reibi (31. Mai 2010)

bygones hat gesagt.:


> Ziel ist es durch die Definition dass ich einfach ein Projekt einchecken kann ohne noch explizit irgendwas angeben zu müssen.



Hi Ja klar, ich hab exakt das selbe Ziel. Das macht er dann so.



bygones hat gesagt.:


> versteht er es dann dass "target" den ganzen Folder betrifft und eine beliebige Datei XYZ in "target" auch ignoriert wird ?



Genau so... er ignoriert da ganze target-Verzeichnis mit allen Dateien die sich darin befinden.

Aber wie maki oben schon sagt, Du sollst sonst nich grad n anderes file target nennen.

grüssli


----------



## maki (31. Mai 2010)

Wenn du einen Ordner - zB. target - auf ignore setzt, wird alles in diesem Ornder, inkl. anderer Ordner, ignoriert.


----------



## reibi (31. Mai 2010)

Hi maki

das war glaub ich auch sein Ziel...meines übrigens auch

;-)


----------



## bygones (31. Mai 2010)

danke euch...

ich trage noch die innere Hoffnung dass Entwickler mit dem Wissen dass "target" ein ignorierte Resource ist nicht ihre Files wo anders so nenne.... und wenn dann ists eine leichte Sache das file umzubennen.

Danke euch


----------



## maki (31. Mai 2010)

Sieh es mal so:
Wir haben uns von der Idee verabschiedet dass jeder Entwickler einfach so ein neues Modul/Projekt anlegen kann, es gibt natürlich Doku dazu, aber 100% automatisch wird das nie wirklich klappen und der Entwickler muss Maven2 auch verstehen.

Zum Glück kommt es nur am Anfang eines Projektes häufiger vor, das neue Projekte/Module erstellt werden.


----------



## bygones (31. Mai 2010)

verlange keine 100% automatismus - wenn ich gewisse resourcen per se nicht im SVN haben will, will ich natürlich auch so wenig aufwand wie möglich haben. Müsste man immer die resourcen per hand ignorieren lassen ist die Hemschwelle sie doch einzuchecken schnell gross.

Nun doch nochmal ne Frage zum Eintragen. Habe mal meine Eingabemaske von Subversive angehängt - in das "Validation Regular Expression" ists mir leider nicht möglich die mehrzeiligen Resourcen von Reibi reinzu hauen.

Steh a weng aufm Schlauch ?!


----------



## reibi (31. Mai 2010)

maki hat gesagt.:


> Sieh es mal so:
> und der Entwickler muss Maven2 auch verstehen.



Das ist so..

Ich für meinen Teil mache aber nie Multi-Modul-Projekte. Das passt irgendwie auch nicht in mein Weltbild. Bei mir ist ein Eclipse-PRJ auch ein Maven-PRJ. (Es gibt halt 2-Projektdateien. Wobei blos die eine(pom) eingecheckt wird.) Das macht es für mein Verständnis bedeutend einfacher.


----------



## reibi (31. Mai 2010)

bygones hat gesagt.:


> in das "Validation Regular Expression" ists mir leider nicht möglich die mehrzeiligen Resourcen von Reibi reinzu hauen.
> 
> Steh a weng aufm Schlauch ?!



Das macht es bei mir automatisch wenn ich bei jeder hinzuzufügenden Ressource auf "Team /add to svn:ignore" drücke.

Den mehrzeiligen Inhalt siehts Du dann über die Eclipse-View "svn-Properties"


----------



## maki (31. Mai 2010)

> Ich für meinen Teil mache aber nie Multi-Modul-Projekte. Das passt irgendwie auch nicht in mein Weltbild.


Bei mir gibt es eigentlich nur Multimodul Projekte, ausser ich probier gerade 'ne neue API/Framework aus.
Alles andere passt ja nicht in Maven2 Weltbild 

@bygones, du kannst dir die SVN Properties explizit öffnen.


----------



## reibi (31. Mai 2010)

maki hat gesagt.:


> Alles andere passt ja nicht in Maven2 Weltbild



muss gestehen, bin im MVN-Umfeld auch noch Anfänger. Wir haben aber schon einige Projekte auf MVN-SVN-Eclipse umgestellt. Das läuft ziemlich gut, is ne große Erleichterung und macht Spaß.

Für mich als langjähgriger Eclipse-Benutzer sind multimodul-prjs ein Konzeptbruch zu Eclipse. Deshalb sind meine Projekte auch keine MMPs. Was aber nicht heißen mag, das ich das in Zukunft nicht noch mal benutze; finde aber meine simplere Herangehensweise vor allem in der doch sehr komplexen mvn-welt dennoch nicht schlecht.

Grussli


----------



## maki (31. Mai 2010)

Die kommenden Eclipse Versionen sollen alle Erweiterungen für Multiprojekte mitbringen, Eclipse ist da bis jetzt etwas veraltet, Netbeans schafft das ja auch 

Mit dem m2eclipse Plugin gibt es übrigens keine Problem was Multi Modul Projekte betrifft.


----------



## reibi (31. Mai 2010)

Genau. Ich ruf maven via console auf bzw. externe Tools im Eclipse.

da m2-Plugin benutz ich auch ... aber blos zum Packagediagramm anschaueen ;-)

Meiste das gibts jetzt im Juni schon mit Eclipse 3.6?


----------



## maki (31. Mai 2010)

Keine Ahnung wann es konkret rauskommen soll (MMP), ich nutze die jetzt schon, mit m2eclipse , hab auch keine Probleme damit.


----------



## bygones (31. Mai 2010)

bei mir klappt das jedenfalls nicht....

Ich leg ein Projekt an -> Team -> Share. Checke "target", ".classpath", ".project" nicht mit ein.
Klicke dann im projekt auf die jeweiligen Resource Team -> Add to svn:ignore

soweit klappts.

es wird aber nix in die "properties" von SVN geschrieben (jedenfalls nicht in den Preferences zu sehen).

Lege ich ein neues Projekt an und share es, will er wieder "target" und die anderen beiden mit einchecken... also hat er keine information vom meiner ignore.

D.h. svn:ignore wird bei mir nur projektweise gespeichert... ich wills aber allgemein gültig haben.


----------



## reibi (31. Mai 2010)

Hi bygones


Das is genau falsch rum wie Du das machst.

Du muss es zuerst zur svn_ignor hinzufügen und dann einchecken.


Ich gebe zu das ist nicht so einfach mit dem subversive-plugin geregelt geht aber trotzdem.


----------



## bygones (31. Mai 2010)

glaub ich habs


----------



## reibi (31. Mai 2010)

Also ich mach das in der Folge, kannste ja mal ausprobieren:

1.) Ich leg ein  Projekt im Eclipse an.
2.) Ich check es ein mit "share prj" ohne die ".project" usw.
3.) Ich kümmer mich um die ignore-Liste
4.) Ich veränder was im PRJ damit ich committen muss
5.) Ich Committe, dabei werden auch die svn-properties mit übermittelt

dann jehts ;-)

Probiers mal so--


----------



## bygones (31. Mai 2010)

reibi hat gesagt.:


> 1.) Ich leg ein  Projekt im Eclipse an.
> 2.) Ich check es ein mit "share prj" ohne die ".project" usw.
> 3.) Ich kümmer mich um die ignore-Liste
> 4.) Ich veränder was im PRJ damit ich committen muss
> 5.) Ich Committe, dabei werden auch die svn-properties mit übermittelt


dann gelten die properties für dieses Projekt... wenn ich nun ein weiteres Projekt anlege muss ich das wieder machen...

bisher klappt nix dass er die Werte generell GLOBAL automatisch übernimmt. Sobald ich auf "Share project" klicke will ich dass ich die zu exkludierenden Resourcen gar nicht in der Übersicht sehe....


----------



## reibi (31. Mai 2010)

bygones hat gesagt.:


> dann gelten die properties für dieses Projekt... wenn ich nun ein weiteres Projekt anlege muss ich das wieder machen....



Genau, Du musst das für jedes PRJ machen, mit dem Subversive-PlugIn. Ich mach das auch so.
Wenn Du das Global für alle Deine SVN-Projekte in Deionem SVN-Repo machen willst geht das bestimmt auch, dann musst Du aber einen svn-befehl auf console ausführen. Wie das geht weiss ich aber nicht genau.. aber kuck mal in die Doku: Subversion Documentation

Mit Tortoise-SVN müsste das auch gehen... Du musst die svn-Properties eigentlich blos Deinen root-Verz mitgeben. Wie das geht musste aber auch selbst rausfinden. Kenn mich mit Tortois nich so gut aus.




bygones hat gesagt.:


> ..
> 
> bisher klappt nix dass er die Werte generell GLOBAL automatisch übernimmt. Sobald ich auf "Share project" klicke will ich dass ich die zu exkludierenden Resourcen gar nicht in der Übersicht sehe....



GLOBAL heisst für Dich:
1.) Alle übrigen PRJte?
oder
2.) Global in Deinem bearbeiteten PRJ?

Grüssli


----------



## bygones (31. Mai 2010)

global heisst für mich - wenn ich ein neues projekt anlege sollen die Ignores angewandt werden.

ich habs jetzt über die "Ignored Resources" von eclipse geregelt - unabhängig vom SCM ...


----------



## reibi (31. Mai 2010)

bygones hat gesagt.:


> ich habs jetzt über die "Ignored Resources" von eclipse geregelt - unabhängig vom SCM ...



Funktioniert das? Wie machste das genau?


----------



## Wildcard (31. Mai 2010)

reibi hat gesagt.:


> Funktioniert das? Wie machste das genau?


Preferences -> Team -> Ignored Resource -> add Pattern
Diese Ignore Patterns gelten dann für jedes Team Plugin (CVS, SVN, GIT,...) und alle Projekte


----------



## reibi (1. Jun 2010)

Hi Wildcard und bygones

Diese Information wird dann aber lokal gehostet. Das bedeutet wiederum: Wenn sich jemand das prj auscheckt muss er das bei sich selber auch nachtragen(in den Eclipse einstellungen).

Wenn man das über "svn:ignore" löst, dann funktioniert das für alle Teilnehmer, welche das prj jehmals aus und einchecken.

Gruss


----------



## bygones (1. Jun 2010)

reibi hat gesagt.:


> Hi Wildcard und bygones
> 
> Diese Information wird dann aber lokal gehostet. Das bedeutet wiederum: Wenn sich jemand das prj auscheckt muss er das bei sich selber auch nachtragen(in den Eclipse einstellungen).
> 
> ...



nicht ganz... die Preferences können exportiert werden und somit in andere Eclipse installationen importiert werden.

Fakt ist, bei uns werden die Entwickler öfters Projekte erstellen, und da habe ich lieber das einmal in einer allgemeine Eclipseinstallation schon verbreitet, als dass ich jeden Entwickler zwinge dies bei jedem Projekt erneut einzugeben... dass dann kompilate bzw generate im SCM landet ist absehbar....


----------



## reibi (1. Jun 2010)

Genau.... 

über svn wären diese Einstellungen(zB für .project) dann auch automatisch für die anderen teilnehmer so gesetzt. Wenn man extra ex und importieren muss, birgt das ein Fehlerpotential, welches vermieden werden kann.

über subversion kann man das leider nur projektweise tun.
Man kann aber mittels svn-Befehl oder tortoise sagen dass der ganze Repository-baum diese svn-ignore-einstellungen bekommen soll. Das ist für Entwicklerteams sicherlich optimal.


Grussli


----------



## bygones (1. Jun 2010)

reibi hat gesagt.:


> Genau....
> 
> über svn wären diese Einstellungen(zB für .project) dann auch automatisch für die anderen teilnehmer so gesetzt. Wenn man extra ex und importieren muss, birgt das ein Fehlerpotential, welches vermieden werden kann.


fuer uns hier nicht relevant, da die Entwickler ein Firmenspezifisches Eclipse bekommen und dies darin installiert ist. Da muss keiner ex- importieren - das machen wir einmal und fertisch ....


----------

