Mi chiedo se Mercurial converte di default $ Id $ all'equivalente di Subversion che è qualcosa del genere: test.php 110 2009-04-28 05: 20: 41Z dordal $. Qualcuno sa?
risposta
No, non sarà così, ma è possibile abilitarla.
https://web.archive.org/web/20121007024058/
https://www.mercurial-scm.org/wiki/KeywordPlan
Perché non ne ho bisogno
chiave di espansione non è supportata nel nucleo di Mercurial perché è di utilità limitata in un sistema moderno ed è problematico dal punto di vista delle prestazioni e dell'integrità binaria. Per la maggior parte degli usi umani, si può semplicemente chiedere il sistema di controllo di revisione. E per le situazioni in cui il sistema di controllo di revisione non è disponibile, è molto probabile che il tag non sia corretto!
Un uso comune che rimane è l'integrazione automatica delle informazioni sulla versione in una build di software. Questo è abbastanza facilmente realizzabile senza sostituzione parola chiave facendo qualcosa di simile al seguente nel Makefile:
...
emulazione di base
Se questo non è abbastanza per voi, è possibile emulare questo comportamento con un'estensione.
...
Un'estensione esempio che fornisce $ Author $ e $ Date $ parole chiave è collegato (keyword.py)
Vedi anche KeywordExtension.
https://www.mercurial-scm.org/wiki/KeywordExtension
chiave di estensione
Questa estensione è distribuito con Mercurial allo
Panoramica
Questa estensione ws l'espansione di chiavi simili a RCS/CVS e definite dall'utente in file di testo tracciati da Mercurial. L'espansione avviene nella directory di lavoro o/e quando si crea una distribuzione utilizzando "archivio hg".
Le parole chiave si espandono nei dati del changeset relativi all'ultima modifica relativa alla directory di lavoro padre di ciascun file.
Se si desidera semplicemente eseguire la versione dell'intero repository, non utilizzare questa estensione ma lasciare che il sistema di compilazione si occupi di esso. Qualcosa sulla falsariga di ...
,,,
Per motivi di velocità e la sicurezza (per evitare parole chiave inavvertitamente espanse) si consiglia di abilitare l'estensione per pronti contro termine solo in pronti contro termine/.hg/hgrc, non globalmente, e per mettere a punto i modelli di file [parola chiave] con estrema attenzione.
Grazie, avrei dovuto cercare di cercare meglio che praticamente rispondeva alla mia domanda. – Darren
@Darren - Felice di aiutare. Volevo essere certo di avere tutta la storia sull'espansione delle parole chiave (il modo Mercurial è non farlo, altrimenti basta abilitare il meno possibile). So anche che può essere difficile capire il termine esatto da cercare in un pacchetto software non familiare ("sostituzione parola chiave" ?, "sostituzione ID"? "Espansione parole chiave"?), Specialmente quando uno dei termini è generale come "parola chiave" o "id". –
Capisco ora perché non farlo, quindi c'è una possibilità che non lo farò e sono abbastanza sicuro che deve affrontare il modo in cui il versioning funziona con Mercurial e Git sul perché è una cattiva idea, in particolare a causa di repository locali e remoti. – Darren
ha qualche simile con Keyword Extension (distribuito con Mercurial)
Questa estensione permette l'espansione delle chiavi RCS/CVS-like e utente definiti in file di testo monitorati da Mercurial. L'espansione avviene nella directory di lavoro o/e quando si crea una distribuzione utilizzando "
hg archive
".Le parole chiave si espandono nei dati del changeset relativi all'ultima modifica relativa alla directory di lavoro padre di ciascun file.
Per esempio:
Id = {file|basename},v {node|short} {date|utcdate} {author|user}
sarebbe esteso come:
$Id: demo.txt,v 2ad3dcb8d811 2007/07/17 12:00:47 blacktrash $
Nota:
Per motivi di velocità e la sicurezza (per evitare parole chiave inavvertitamente espanso), è consigliato:
- per consentire l'estensione per repo solo in
repo/.hg/hgrc
, non globalmente,- e per mettere a punto le
[keyword]
modelli di nome di file con la massima cura.
- 1. Conversione da Mercurial a Subversion
- 2. Mercurial to Mercurial to Subversion Workflow Problem
- 3. interoperabilità tra mercurial e subversion
- 4. Come unire automaticamente .hgtags in Mercurial?
- 5. Cosa fa __contains__ fare, ciò che può chiamare __contains__ funzione
- 6. Suddividere il repository Subversion in più repository Mercurial?
- 7. Esiste un'utilità che convertirà POSIX in PCRE per PHP?
- 8. ciò che è :: * in C++
- 9. "##" in printk, ciò che significa ##
- 10. Mercurial/Python - Cosa fa la funzione Underscore?
- 11. C++ stl ciò fa base() fare
- 12. ciò che è "Class :: *"
- 13. DVCS (Mercurial) non fa per me?
- 14. Questo C++ convertirà PDP-11 in IEEE?
- 15. che cosa fa questo attributo do: MethodImplOptions.NoInlining (o: ciò che è 'inlining' un metodo)
- 16. Ottiene automaticamente un ID storyboard?
- 17. Come si fa un'applicazione autonoma Camel che può spegnersi automaticamente?
- 18. ciò che realmente accade in Javascript Ordina
- 19. Esattamente ciò che è PLINQ?
- 20. Will random() cambierà mai?
- 21. Come sapere ciò che viene cliccato in un DropDownButton
- 22. Metti alla prova ciò che voli, vola ciò che provi. [Principio della NASA]
- 23. Genera automaticamente ID su SWT-Widget
- 24. Come modificare correttamente ciò che compositore o Symfony2 fa dopo aver eseguito "compositore update/install"?
- 25. In che modo esattamente subversion memorizza i file nel repository?
- 26. Come si aggiorna automaticamente una copia di lavoro di Subversion?
- 27. Come posso fare quando l'utente digita l'input di testo e poi automaticamente convertirà in maiuscolo in jQuery?
- 28. MongoDB: ID generati automaticamente sono zeri
- 29. Ad ogni modo per unire o concatenare automaticamente hgtags (Mercurial)?
- 30. Perché questo javascript è così lento in IE quando tutto ciò che fa è modificare un elenco di selezione?
L'utilizzo della conversione di parole chiave con un DVCS è una pessima idea. È una buona idea con svn e cvs perché è possibile che diversi file nel repository vengano aggiornati a diverse revisioni, ma in Mercurial o git tutti i file si trovano nello stesso punto, quindi puoi semplicemente usare 'hg id' per ottenere quel valore o in uno script di build usa qualcosa come '$ (hg id --id)'. –