SVN Properties

Ereignisse, Vorschläge und Aktionen

SVN Properties

Beitragvon Quix0r » Mo Jul 19, 2010 2:34 am

Hi,

es gibt die so genannten SVN-Properties. (svn propset --help mal eingeben). Diese bringen vieles nuetzliches mit. Bevor ich aber auf ein paar eingehe, hier erstmal das Set-Script zum Setzen von Properties auf bestehende Dateien (manuell viel zu mueselig!):
Code: Alles auswählen
#!/bin/sh

find -type f -name "*.java" -exec svn propset svn:keywords "LastChangedBy LastChangedDate LastChangedRevision" {} \;
find -type f -name "*.lng" -exec svn propset svn:keywords "LastChangedBy LastChangedDate LastChangedRevision" {} \;
find -type f -name "*.java" -exec svn propset svn:mime-type "text/plain" {} \;
find -type f -name "*.jpg" -exec svn propset svn:mime-type "image/jpeg" {} \;
find -type f -name "*.png" -exec svn propset svn:mime-type "image/png" {} \;
find -type f -name "*.gif" -exec svn propset svn:mime-type "image/gif" {} \;
find -type f -name "*.ico" -exec svn propset svn:mime-type "image/x-ico" {} \;
find -type f -name "*.html" -exec svn propset svn:mime-type "text/plain" {} \;
find -type f -name "*.xml" -exec svn propset svn:mime-type "application/xml" {} \;
find -type f -name "*.txt" -exec svn propset svn:mime-type "text/plain" {} \;
find -type f -name "*.lng" -exec svn propset svn:mime-type "text/plain" {} \;
find -type f -name "*.php" -exec svn propset svn:mime-type "text/plain" {} \;
find -type f -name "*.jar" -exec svn propset svn:mime-type "application/java-archive" {} \;

echo "$0: propset svn:executable on *.sh"
find -type f -name "*.sh" | xargs svn propset svn:executable 2>/dev/null
echo "$0: propdel svn:executable on *.java"
find -type f -name "*.java" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.html"
find -type f -name "*.html" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.lng"
find -type f -name "*.lng" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.jpg"
find -type f -name "*.jpg" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.png"
find -type f -name "*.png" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.gif"
find -type f -name "*.gif" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.ico"
find -type f -name "*.ico" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.txt"
find -type f -name "*.txt" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.xml"
find -type f -name "*.xml" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.php"
find -type f -name "*.php" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.nsi"
find -type f -name "*.nsi" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.jar"
find -type f -name "*.jar" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.js"
find -type f -name "*.js" -exec svn propdel svn:executable {} \; 2>/dev/null
echo "$0: propdel svn:executable on *.rss"
find -type f -name "*.rss" -exec svn propdel svn:executable {} \; 2>/dev/null

Dadurch werden gleich die Properties automatisch gesetzt. Die Java-Dateien sollten dann Schritt-Fuer-Schritt (alles auf einmal ist auch mir zu viel) erweitert werden. Den Zugriff auf die Keywords erhaltet ihr durch folgenden Code-Block (im bestehenden Kommentarblock ersetzen):
Code: Alles auswählen
// $LastChangedRevision::                                                $
// $LastChangedDate ::                                                      $
// $Tag::                                                       $
// $LastChangedBy::                                                   $

Das Keyword Tag existiert nicht, soweit ich aber gehoert habe, soll es irgentwann mal aufgenommen werden. svn:executable gilt nur fuer Mac und Linux (also *.command und *.sh), die MIME-Typen sollen fuer einige SVN-Clients nuetzlich sein (TortoiseSVN ist da aber meiner Erfahrung nach - neuste Version vorausgesetzt - nicht so zickig, gilt wohl fuer andere?). Auch fuer das Web-Interface sind die MIMEs ganz nuetzlich, es ist naemlich sonst application/octet-stream auf alles Nicht-Text gesetzt.

Unter der Sektion [miscellany] muss noch enable-auto-props = yes reinkommentiert werden (die Raute entfernen), damit dies auch eingeschaltet ist. Danke an Copro fuer den Hinweis.

Nur als Verbesserungsvorschlag. :) Das Script koennte ihr frei nutzen, wie ihr wollt.

Roland
Zuletzt geändert von Quix0r am Mo Sep 27, 2010 6:36 pm, insgesamt 8-mal geändert.
Quix0r
 
Beiträge: 1347
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN Properties

Beitragvon Orbiter » Mi Jul 21, 2010 11:47 am

sieht interessant aus. Wo stellt man das bei Eclispe ein, oder nimmt der auch (je nach SVN Konnektor) ~/.subversion/config ?
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: SVN Properties

Beitragvon Quix0r » Mi Jul 21, 2010 1:37 pm

Stimmt, ganz vergessen dass du Eclipse nutzt. :) Das Script kannst du erstmal ausfuehren, das sollte mit Mac auch gehen.

Mit den Auto-Properties meine ich, dass du ganz gewoehntlich ~/.subversion/config nutzen kannst. Oder dass innerhalb von ~/.eclipse/ eine Konfig sein muss. In den Einstellungen von Eclipse vermute ich das nicht, hab zu lange Eclipse nicht genutzt. :)
Quix0r
 
Beiträge: 1347
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN Properties

Beitragvon Copro » Mi Jul 21, 2010 11:43 pm

Beim ersten Test hatte das noch nicht geklappt weil ich vergessen hatte im Bereich [miscellany] über dem auto-props Bereich die folgende Zeile auszukommentieren:
### Section for configuring miscelleneous Subversion options.
[miscellany]
### (...)
### for 'svn add' and 'svn import', it defaults to 'no'.
### Automatic properties are defined in the section 'auto-props'.
enable-auto-props = yes


Ich habe an die Liste auch die Sprachdateien mit Endung .lng angehängt aber das hat leider nicht geklappt.

*.sh = svn:eol-style=native;svn:executable
*.command = svn:eol-style=native;svn:executable
*.txt = svn:eol-style=native;svn:mime-type=text/plain
*.lng = svn:eol-style=native;svn:mime-type=text/plain;svn:keywords=Date Author Id Revision HeadURL Tag
*.xml = svn:eol-style=native;svn:mime-type=application/xml
*.html = svn:eol-style=native;svn:mime-type=text/plain
*.java = svn:eol-style=native;svn:mime-type=text/plain;svn:keywords=Date Author Id Revision HeadURL Tag
*.ico = svn:mime-type=image/x-ico
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
*.bmp = svn:mime-type=image/bmp
*.gif = svn:mime-type=image/gif


Verwende aktuell TortoiseSVN 1.6.10, Build 19898 - 32 Bit , 2010/07/16 15:46:08 mit
Subversion 1.6.12
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: SVN Properties

Beitragvon Quix0r » Do Jul 22, 2010 6:07 am

Danke fuer den Hinweis. Hab ich mit aufgenommen.

Edit: Das *.lng hatte ich ganz vergessen. Dass es nicht klappt, vermute ich liegt daran, dass die auto-properties nur fuer neue Dateien gelten, fuer die bereits angelegten musst du das entweder selber setzen (unter Windows viel Arbeit, oder das Script umwandeln in eine Batch-Datei) oder z.B. unter einer Linux-Shell das Script ausfuehren. Dann wird die meiste Arbeit fuer dich abgenommen.
Quix0r
 
Beiträge: 1347
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN Properties

Beitragvon Quix0r » Mi Sep 08, 2010 2:12 pm

Neue Version ist im letzten Edit fertig: Es werden nun unnoetige svn:executable (Java, HTML oder gar Bilder brauchen keine Ausfuehrrechte, das brauchen nur Scripte) entfernt.
Quix0r
 
Beiträge: 1347
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN Properties

Beitragvon Quix0r » Mo Sep 27, 2010 6:37 pm

An die von copro genannte config noch folgendes anhaengen:
Code: Alles auswählen
*.jar = svn:mime-type=application/java-archive

Gleiches habe ich auch im Script vom ersten Beitrag zum nachtraeglichen Setzen aufgenommen.

Hier mal ein YaCy-Link dazu:
http://free-search.yacy/BlogComments.ht ... 5628980617

Aahhh, wieso ist der Blog-Eintrag gekillt? :(
Zuletzt geändert von Quix0r am Mi Sep 29, 2010 12:32 am, insgesamt 1-mal geändert.
Quix0r
 
Beiträge: 1347
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN Properties

Beitragvon Quix0r » Di Sep 28, 2010 11:16 am

*schieb*

Lasst das bitte nicht aus dem Auge, besonders svn:eol-style auf native gesetzt kann sehr nuetzlich sein und hier fehlt das SVN-Property bei YaCy ganz. So hat ein Nutzer/Entwickler unter Windows immer den Windows/DOS-Zeilenumbruch, der unter Linux und der unter MacOS auch den passenden Zeilenumbruch.

Ich habe zum Setzen des Properties ein sehr einfaches Shell-Script geschrieben, das dies automatisiert:
Code: Alles auswählen
#!/bin/sh

nlconv() {
    echo "Converting eol-style in ${1} ..." >> eol-style.log
    dos2unix "${1}" || exit 255
    svn propset svn:eol-style native "${1}" || exit 255
}

rm -f eol-style.log

LIST=`find -type f -name "*.java" -or -name "*.lng" -or -name "*.html" -or -name "*.xml" -or -name "*.txt" -or -name "*.php"`

for entry in ${LIST}; do
    svn propset svn:eol-style native "${entry}" || nlconv "${entry}"
done

Das dos2unix war bei nur sehr wenigen Dateien noetig, da bei denen verschiedene Zeilenumbrueche verwendet wurden:
Code: Alles auswählen
./htroot/IndexCleaner_p.html ...
./htroot/ConfigLiveSearch.html ...
./htroot/Network.xml ...
./htroot/Wiki.html ...
./htroot/ConfigProfile_p.html ...
./htroot/PerformanceSearch_p.html ...
./htroot/IndexCreateWWWLocalQueue_p.html ...
./htroot/api/queues_p.java ...
./htroot/PerformanceQueues_p.java ...
./htroot/IndexCreateLoaderQueue_p.html ...
./htroot/Threaddump_p.html ...
./htroot/ConfigAccounts_p.html ...
./htroot/IndexCreateWWWGlobalQueue_p.html ...
./htroot/yacy/ui/img-2/readme.txt ...
./htroot/yacy/ui/img-1/readme.txt ...
./source/net/yacy/document/parser/pdfParser.java ...
./source/net/yacy/document/parser/bzipParser.java ...
./source/de/anomic/crawler/Balancer.java ...
./source/de/anomic/search/Segment.java ...

Diese Dateien sind es nur, die mehr als einen Zeilenumbruchtypus haben.
Quix0r
 
Beiträge: 1347
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld


Zurück zu Mitmachen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron