我正在计划我的公司从CVS过渡到Git,并且某些工程师希望我们仍然使用CVS关键字字符串,例如$Id: $.我已经阅读了有关使用ident设置实现此内容的所有内容.gitattributes,并且我理解为什么它是不合需要的,尽管对于较小的源树可能是可能的.(我们的来源很大,所以我认为这是不可能的.)
我们的工程师并不特别关心在文件中使用SHA1哈希.他们只想知道:
他们发现在浏览代码时在文件头中看到这些信息非常方便,我无法与之争论.
我想知道的是:
是否有任何方法可以在git commit之前对所有暂存的文件进行信息标记?换句话说,在$Id: $正在提交的文件的工作副本上运行perl命令 - 替换所需信息块?
这根本不需要任何.gitattributes行动.Git只需要知道如何合并两个这样的信息块,理想情况是选择后者.标记的信息只是新创建的版本中的一个文件更改.
我在预提交钩子中看到了这样做,但似乎有不同的意图 - 不是为了编辑文件,只是为了检查它们.我是对的吗?
没有人试过这种方法吗?对我来说,似乎比每次git更改版本时尝试过滤所有源文件更简单,这听起来像是.gitattributes这样.
非常感谢任何建议/警告/指针.
我在使用@_将单个参数传递给Perl子例程时遇到了一个奇怪的错误.传入子程序的值在进入子程序后立即更改.
代码示例:
my $my_def = 0;
print "my_def = $my_def \n";
@someResult = doSomething($my_def);
sub doSomething {
my $def = @_;
print "def = $def \n";
...
}
Run Code Online (Sandbox Code Playgroud)
这返回:
> my_def = 0
> def = 1 # instead of "0"
Run Code Online (Sandbox Code Playgroud)
另一个奇怪的事情是代码在几个月前正常工作.
当我将其更改为:
sub doSomething {
my $def = $_[0];
Run Code Online (Sandbox Code Playgroud)
谁能说出什么可能导致问题?使用@_传递单个参数是否有任何限制?
谢谢!
我有一个名为sara的文件,在此文件中。我在某处有 UNIX 这个词,我想用 linux 替换它。
sed 's/UNIX/linux/' sara
Run Code Online (Sandbox Code Playgroud)
但当我使用编辑器输入时,它仅回显此更改的所有内容,但不会将其保存在文件 sara 中。
我从来没有学过Perl并试图理解别人写的一篇文章.有人能告诉我什么perl -pi.bak -e "tr/\n\r/ /d" test.XML意思吗?提前致谢.