Domanda

Sono stato alla guida me pazzo negli ultimi giorni più di questo. Abbiamo appena finito la creazione di un server di Hudson continuo Integrazione. Modo che venga eseguito uno script di build ogni impegnano a convalidare il commit. Il problema è che convalida che tutti i file nel repository hanno sia le proprietà svn:keywords = "Id" e svn:eol-style = "LF" impostati su tutti i file .php, che normalmente sarebbe fantastico (L'ultima volta che ho fatto questo, ho usato Eclipse e Tortoise SVN, che hanno entrambi svn :: funzionalità add).

Ma il problema è che sono cresciuto abbastanza abituato a Netbeans. E Netbeans non ha alcuna funzione svn add che posso trovare (è aggiungere i file automaticamente al commit). Il problema è che non posso aggiungere le proprietà fino a quando vengono aggiunti i file. Se commetto senza aggiungere le proprietà, la costruzione fallirà. Così finisco in mancanza l'accumulo ogni altro commit perché ho bisogno di prendere 5 passi (impegnarsi, propset ricorsivo, si impegnano, riconoscere generazione non riuscita, eliminare generazione non riuscita), di fare qualcosa che normalmente avrebbero richiesto solo 2 (propset, commit).

Non voglio davvero tornare a Eclipse, a questo punto, ma quando mi ci vogliono 20 minuti per commettere perché ho bisogno di fare tutto 4 volte, sta andando a invecchiare in fretta ... C'è qualche soluzione che mi manca (a corto di rimuovere il controllo di proprietà, che sconfiggerà il punto, perché voglio queste proprietà impostate in ogni caso)? O sono solo SOL? ...

È stato utile?

Soluzione

Subversion ha un file ~/.subversion/config che consente di personalizzare una serie di impostazioni diverse, tra le quali è auto-props , proprietà impostate automaticamente i file in base alla loro estensione:

Quindi, assumendo aspetti Netbeans quel file, si può dire svn per impostare automaticamente tali proprietà modificando la sezione [auto-props] per includere *.php = svn:eol-style=LF;svn:keywords=Id

Ad esempio:

[auto-props]
# here's yours
*.php = svn:eol-style=LF;svn:keywords=Id
# and one with multiple keywords
*.c = svn:eol-style=native;svn:keywords=Author Date Rev Id HeadURL
# and one with a mime-type
*.png = svn:mime-type=image/png

Aggiorna :

Netbeans 6.9 sembra leggere nel file ~/.subversion/config su avvio e non cambia pick-up senza un riavvio. Dopo il riavvio Netbeans, raccoglie in modo corretto i miei selezionati auto-props e li applica a ciascun file appena creato.

UPDATE 2 :

Netbeans sembra di leggere sia i file di configurazione di eversione globali e personali (tra molti altri file Subversion) all'avvio. Ecco una parte rilevante visto da strace:

stat("/home/kibab/.subversion/config", {st_mode=S_IFREG|0644, st_size=4576, ...}) = 0
open("/home/kibab/.subversion/config", O_RDONLY) = 28
open("/etc/subversion/config", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/kibab/.netbeans/6.9/config/svn/config/config", {st_mode=S_IFREG|0644, st_size=825, ...}) = 0
stat("/home/kibab/.netbeans/6.9/config/svn/config", {st_mode=S_IFDIR|0755, st_size=61, ...}) = 0
open("/home/kibab/.netbeans/6.9/config/svn/config/config", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 28

Un ulteriore esame sembra implicare che una volta che è letto attraverso i file di configurazione, poi scrive una copia (utilizzando O_TRUNC) del file di configurazione che esso memorizza in ~/.netbeans/6.9/config/svn/config/config (almeno su Linux).

Sulla base di questo, suppongo che Netbeans sta tentando di essere abbastanza intelligente per utilizzare tutte le impostazioni di eversione si è impostato nei file di configurazione, sia globale e personale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top