Come posso verificare se un URL punta a un repository mercuriale? Con git, vorrei usare git ls-remote $url
e controllare il valore restituito. C'è qualcosa di simile per hg?Controlla se un url è un repository mercuriale (come git ls-remote)
risposta
Per questo è possibile utilizzare hg identify
: può essere eseguito su un repository remoto e Mercurial interromperà con un codice di uscita di 255 se il percorso fornito non è un repository. Questo repository esiste:
$ hg identify https://bitbucket.org/mg/mercurial-talk; echo $?
7788b512c5bd
0
Questo non lo fa:
$ hg identify https://bitbucket.org/mg/git-talk; echo $?
abort: HTTP Error 404: Not Found
255
probabilmente si vorrà per reindirizzare sia stdout e stderr a /dev/null
.
AFAIK, ls-remote (utilizzato all'interno del repository) con Git-URL mostra i riferimenti in questo URL da locale, sì?
Se vuoi sapere di Mercurial, che repository remoto, si sa (non utilizzato per spingere | tirare, solo conoscere), è possibile utilizzare hg paths
Se si vuole un po 'URL casuale a definire, è un repository Mercurial o no, puoi almeno provare clone da questo URL
git ls-remote può essere utilizzato al di fuori di un repository git. 'git ls-remote $ url' restituisce true se' $ url' punta a un repository git valido. Sto cercando qualcosa di simile per mercurial, senza dover creare un clone. –
Martin, posso chiederti di aggiungere almeno alcune delle tue risposte come argomento aggiuntivo in Mercurial Tips & Tricks (oppure - creare una propria lista di suggerimenti)? Vale a dire: questo, unendo .hgtags con il proprio mergetool, testando se l'unione fosse banale usando "internal: fail" –
Eccellente. Questo risponde esattamente alla mia domanda. –
@LazyBadger, stai parlando della [pagina wiki] (http://mercurial.selenic.com/wiki/TipsAndTricks)? Sarebbe bello collegare le risposte lì, ma mi dispiace dire che non passo molto tempo ad aggiornare il wiki in questi giorni. Per favore aggiungi i link come meglio credi, però! –