Perl 将提交注释复制到windows剪贴板

Perl 将提交注释复制到windows剪贴板,perl,svn,tortoisesvn,commit,clearcase,Perl,Svn,Tortoisesvn,Commit,Clearcase,我最近看到了一个漂亮的ClearCase黑客程序,其中版本号作为提交的一部分添加到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}; #$CLEARCA

我最近看到了一个漂亮的ClearCase黑客程序,其中版本号作为提交的一部分添加到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
现在,我们已经(或开始)从CC迁移到Subversion,我的一个用户非常希望在Subversion中拥有相同的功能(我猜是TortoiseSVN)


有人在svn环境中见过或尝试过类似的东西吗?

是的,乌龟svn支持

看起来您应该创建一个
post-commit
hook来运行
..\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]);

未测试。

我最终编写了一个客户端钩子,它只使用标准的Windows工具。生成的bat文件“tortoisesvn post 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
@echo关闭
rem TortoiseSVN客户端提交后钩子脚本
rem脚本
setlocal
设置tsvnPath=%1
设置tsvnDepth=%2
设置tsvnMsgFile=%3
设置tsvnRevision=%4
设置tsvnError=%5
设置tsvnCwd=%6
rem将修订发送到剪贴板
回显%tsvnRevision%|剪辑
端部

这是一个简单的任务,设置一个电话从陆龟vn使用这个。转到设置,然后单击“Hook Scripts”,添加一个类型为“post-commit-Hook”的钩子,并将其指向上面的脚本。

请注意,答案不必局限于Perl。相反地;perl附带了ClearCase,由于我想离开CC,我宁愿不必将perl与TortoiseSVN一起安装,而只需单独使用TortoiseSVN。