我有一个文件和一个补丁.我想在视觉上应用补丁,看看补丁提出的更改如何在上下文中查看,进行一些更正,并保存生成的文件.
什么工具可以做到这一点?
视觉差异工具(即meld,diffuse,diffmerge)都不能满足我的要求:它们不能使用补丁,它们只是合并整个文件.
我需要在SVN中的两个修订版之间获取已更改的文件列表.
我使用了以下命令:
svn diff -r 5001:6001 --summarize https://svn.blah.com/../ > output.txt
Run Code Online (Sandbox Code Playgroud)
出于某种原因,在修订版5001上修改的文件未填充在输出文本文件中.
在两个修订版之间提取文件列表的确切命令是什么(包括修订版和修订版,包括修订版5001和修订版6001)?
抱歉这个愚蠢的问题,但我无法在任何地方找到明确的答案.
当你在git中合并两个分支时,你得到一个这样的输出:
some_file.txt | 564 ++++++++++++++--
Run Code Online (Sandbox Code Playgroud)
我认为已了解 +并-意味着添加和删除,但是:
什么迹象的数量代表什么? 当你几乎没有变化时,每个标志似乎代表一条线,但是当你有更多的标志时,我无法得到代表的逻辑
是某种变化的百分比?我的猜测是,符号的数量代表相对的变化量 - 但相对于什么?当前档案?整个合并?
怎么计算?是否有任何官方关于这个源?我现在对此最准确的答案是"这种表现形式不是很精确"......我只是好奇
我经常使用wordpress,有时我会暂时更改wordpress核心文件,以便了解发生了什么,特别是在调试时.今天我有点意外.当我准备将我的更改提交到我的git存储库时,我注意到它将git status一个wordpress'文件标记为没有为提交暂存.我记得在关闭它之前我已经将所做的所有更改还原到该文件中,因此我决定使用diff以查看已更改的内容.我将项目中的文件与我保存在下载目录中的wordpress副本上的文件进行了比较.事实证明文件在最后有所不同.diff表示原始文件末尾缺少换行符:
1724c1724
< }
\ No newline at end of file
---
> }
Run Code Online (Sandbox Code Playgroud)
我从来没有触及那条线.我在大文件中间某处所做的更改.这让我认为vim在文件末尾添加了换行符.为什么会这样?
任何人都可以解释在SVN中进行差异时的颜色代码,即某些行被标记为红色,黄色,蓝色等等
目前在项目上使用Gettext,.po文件很好地保存在版本控制之下.
PO文件当然包含翻译,但除此之外,它们还包含一些元数据 - 有关可翻译字符串所在的确切文件和行号的信息.
问题是每次更新PO文件时,元数据的变化比实际的翻译要多得多.这使得以后很难从版本控制差异中看到实际更改的内容 - 您只看到文件名和行号的无数更改.像那样:
- #: somefile.js:43
- #: somefile.js:45
- #: somefile.js:118
+ #: somefile.js:203
+ #: somefile.js:215
msgid "Translate me please"
msgstr "Tõlgi mind palun"
- #: somefile.js:23
- #: somefile.js:135
+ #: otherfile.js:23
+ #: otherfile.js:135
msgid "Note"
msgstr "Märkus"
- #: andThatFile.js:18
#: orThisFile.js:131
- msgid "Before I was like this"
- msgstr "Selline olin ma enne"
+ msgid "I happen to be changed"
+ msgstr "Paistab, et mind muudeti"
Run Code Online (Sandbox Code Playgroud)
当然,一个简单的解决方法是在xgettext输出中禁用filename/linenumber注释的生成.但实际上我发现这些文件名在翻译时非常有用.
我当然不可能是唯一一个不喜欢他的PO文件的差异的人.建议?
这种情况发生在我的比较视图和标准提交中,文件数量变化很大.
下面的截图来自两个分支之间的比较,其中380个文件已更改.差异日志开头的文件可以看到它们的差异,但是在页面的某个点上它停止可视化差异.我知道你不想要大量的页面,但我似乎找不到单独查看文件差异的方法.相反,我必须在本地检查这些并手动完成差异.
有没有人有一个更简单的解决方案,无论是软件驱动还是(最好)一个我在github上缺少的链接?

在Git GUI中,我可以选择差异的一部分,然后只分段那些行或块.我将如何反向操作,如在文件中回滚更改的行.通常这些是偶然的空白更改我只想恢复但仍然分阶段/提交同一文件的其他部分.
我在bash脚本中有一个变量$data和变量$file:
data=$(echo "$(printf '%s\n' "${array[@]/%/$'\n\n'}")")
file=$(<scriptfile_results)
Run Code Online (Sandbox Code Playgroud)
那些变量将包含文本.如何比较这两个?一种选择是使用像这样的diff(1)实用程序:
diff -u <(echo "$data") <(echo "$file")
Run Code Online (Sandbox Code Playgroud)
这是比较两个变量内容的正确而优雅的方法吗?另外这个<( )技术怎么称呼?据我了解,每个<( )临时文件(命名管道)都是创建的..
从 Xcode 13 开始,代码比较默认不再是并排差异。
一定还有办法做到这一点。
我正在努力寻找选择!