2010-06-29 4 views
3

Je veux vérifier si le référentiel existe sur le chemin donné ou non avant d'exécuter le processus ci-dessous..une idée?Comment vérifier si un référentiel existe ou non?

var exe = Components.classes['@mozilla.org/filelocal;1']. 
        createInstance(Components.interfaces.nsILocalFile); 

exe.initWithPath("HG.EXE"); 

var process = Components.classes["@mozilla.org/process/util;1"]. 
       createInstance(Components.interfaces.nsIProcess); 

Process.init(exe); 

args = ["init", "D:\\testRepo\\"]; 
process.run(blocking, args, args.length); 

Répondre

3

Eh bien, vous pouvez utiliser

hg --cwd the/path/you/want/to/test root 

Cette commande vous indique s'il y a un dépôt à the/path/you/want/to/test ou au-dessus. Regardez le code de sortie de la commande pour voir si elle a réussi.

Vous devrez également comparer la racine imprimée par la commande avec votre répertoire actuel - il se peut qu'il y ait un référentiel à un niveau supérieur, puis hg root le signalera.

+0

génial ... merci pour l'info ... – Nitesh

+0

Nitesh: Je suis heureux que vous pourriez l'utiliser, n'hésitez pas à accepter cette réponse comme la bonne réponse :-) –

+0

Cette réponse peut être périmée. Sur hg 2.6.1 sous Windows, j'obtiens un 'abort: repository ... not found! 'Sur c: \ dev \ tools mais une sortie normale sur c: \ dev. – Kev

1

Vous pouvez simplement vérifier si le sous-répertoire .hg existe (cela ne fonctionne que si vous vérifiez la racine du référentiel, et non dans un dossier qui ferait partie de votre référentiel).

Questions connexes