Skript pro zvolení verzovacího systému

Školení, která pořádám

Každý den používám dva verzovací systémy – Subversion a Git. Základní operace provádím klávesovou zkratkou pomocí příkazového řádku ve SciTE a moc mě nebaví si u každého projektu nastavovat, který verzovací systém používá. Napsal jsem si proto jednoduchý skript, který verzovací systém vybere automaticky podle toho, jestli v aktuálním adresáři je nebo není podadresář .svn. Používám ho jen se základními příkazy diff, commit a log, které jsou v obou verzovacích systémech. Další příkazy by se daly sjednotit buď pomocí aliasů Gitu nebo upravením předávaných parametrů v tomto skriptu.

var command = 'Git\\bin\\git';
var fso = new ActiveXObject('Scripting.FileSystemObject');
if (fso.FolderExists('.svn')) {
	command = 'Subversion\\bin\\svn';
}
command = WScript.ScriptFullName.replace(/[^\\]+\\[^\\]+$/, '') + command;
for (var i=0; i < WScript.Arguments.length; i++) {
	var arg = WScript.Arguments(i);
	command += ' ' + (/ /.test(arg) ? '"' + arg + '"' : arg);
}
//~ WScript.Echo(command);
var shell = new ActiveXObject("WScript.Shell");
var output = shell.Exec(command).StdOut.ReadAll();
if (output) {
	WScript.Echo(output.replace(/\n$/, ''));
}

Skript jsem napsal v JavaScriptu, aby neměl závislost na PHP. Pod Windows se dá spustit příkazem CScript //Nologo vcs.js.

Jakub Vrána, Řešení problému, 19.11.2010, diskuse: 3 (nové: 0)

Diskuse

Honza:

Máš tam překlep, skript se spouští příkazem CScript //nologo neco.js (cscript, ne csript)

ikona Jakub Vrána OpenID:

Díky za upozornění, opravil jsem to.

ikona Ondřej Mirtes:

Pomocí příkazu git svn by mělo jít pracovat s SVN repozitářem lokálně jako s Gitem.

http://www.kernel.org/pub/software/scm/git/docs/git-svn.html

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2024 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.