2013-05-16 3 views
3

Недавно я увидел отличный хакер для ClearCase, где номер версии был добавлен в буфер обмена Windows как часть фиксации. Хак выглядеть следующим образом:Копирование комментирования в буфер обмена Windows

@rem = ' PERL for Windows NT - ccperl must be in search path 
@echo off 
ccperl %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 
goto endofperl 
@rem '; 

#$CLEARCASE_COMMENT = $ENV{CLEARCASE_COMMENT}; 
#$CLEARCASE_FILE1 = $ENV{CLEARCASE_PN}; 
#$CLEARCASE_FILE2 = $ENV{CLEARCASE_XPN}; 

#print "DEBUG: $CLEARCASE_FILE2\n"; 

#$message = "Element: $CLEARCASE_FILE2"; 

use Win32::Clipboard; 
Win32::Clipboard::Set($ENV{CLEARCASE_XPN}); 
#$CLIP = Win32::Clipboard(); 
#$CLIP->Set($ENV{CLEARCASE_XPN}); 


__END__ 
:endofperl 

Теперь мы переместились (или зашевелился) от ЦК к Subversion и один из моих пользователей, а стремятся иметь такую ​​же функциональность в Subversion (и я думаю, TortoiseSVN).

Кто-нибудь видел или пытался что-то подобное в среде svn?

+0

Обратите внимание, что ответ не обязательно должен ограничиваться Perl. Напротив; perl поставляется с ClearCase, и поскольку я хочу оставить CC, мне бы не пришлось устанавливать Perl вместе с TortoiseSVN, а просто использовать TortoiseSVN. – koenig

ответ

0

В итоге я написал ссылку на клиентскую сторону, в которой используются только стандартные инструменты Windows. Результирующий файл летучей мыши «TortoiseSVN-пост-commit.bat», в конечном итоге, как этот

@echo off 
rem TortoiseSVN Client Side post-commit hook script 
rem script <Path> <Depth> <MessageFile> <Revision> <Error> 
setlocal 
set tsvnPath=%1 
set tsvnDepth=%2 
set tsvnMsgFile=%3 
set tsvnRevision=%4 
set tsvnError=%5 
set tsvnCwd=%6 

rem send the revision to the clipboard 
echo %tsvnRevision% | clip 
endlocal 

Это был тогда простая задача создать вызов от TortoiseSVN, чтобы использовать это. Перейдите к настройкам, затем «Hook Scripts» и добавьте крючок с типом «post-commit-hook» и укажите это на сценарий выше.

2

Да, Tortoise SVN поддерживает client-side hooks.

Похоже, вы бы создать post-commit крюк для запуска ...\path\to\perl ...\path\to\script.pl

после совершения крючки получают следующее @ARGV:

$ARGV[0]: PATH 
$ARGV[1]: DEPTH 
$ARGV[2]: MESSAGEFILE 
$ARGV[3]: REVISION 
$ARGV[4]: ERROR 
$ARGV[5]: CWD 

Они определены в связанном документе.

Так сценарий будет

use strict; 
use warnings; 

use Win32::Clipboard qw(); 

my $clip = Win32::Clipboard(); 
$clip->Set($ARGV[3]); 

непроверенным.

Смежные вопросы