SVN:通过比较文件或文件内容来确定修订版的方式
SVN: Way to determine revision by comparing file or file content
我有一个场景,我有一个文件,我需要知道这个文件的源版本是什么。
我可能对某个特定文件进行了数百次修订,并且有一个文件与这些修订中的一个或多个相匹配。
在 Tortoise、Cornerstone 或命令行中有什么方法可以做到这一点吗?
如果问题不是很清楚,我们深表歉意。老实说,我不确定如何表达我正在寻找的内容。
我在这里发现了一个关于 git 的类似问题;
GIT: determine revision based on a file
如果您必须在 VCS 之外使用 任何内容 并确定相应的版本并且不要将此数据添加到文件(文本文件)或存储库(二进制文件) - 它是 你的失败(Git-男孩必须受苦受难,因为他们没有直接关键词/但有污迹|干净的过滤器/和修订属性 /?/,但在 SVN 中你有这些可能性)。重新考虑您的工作流程并开始使用 Power!
在您当前的状态下(没有关键字,没有元数据)您可以(对于每个文件)
- 计算任何可用的未版本化文件的哈希值
- 为 repo 中的所有相关修订计算此文件的相同哈希值
- 比较哈希值并找到匹配项
抄袭 this answer,这里有一个快速但肮脏的批处理文件可以完成这项工作,假设输入文件已经在版本控制之下。
@echo off
set file=%1
set temp_file="temp.file"
if [%file%] == [] (
echo Usage: "%0 <file>"
exit /b
)
for /F "tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
svn cat -r %%R %file% > %temp_file%
fc %temp_file% %file% > nul
if errorlevel 0 if not errorlevel 1 echo Matches revision r%%R
del /Q %temp_file%
)
这会获取给定文件名的日志,并对每个修订执行以下操作:
- 将该版本的文件转储到磁盘上的临时文件
- 将转储的修订与输入文件进行比较
- 如果它们相等,
fc
将 errorlevel
设置为 0,因此检查并输出 Matches revision r###
- 删除临时文件
我有一个场景,我有一个文件,我需要知道这个文件的源版本是什么。
我可能对某个特定文件进行了数百次修订,并且有一个文件与这些修订中的一个或多个相匹配。 在 Tortoise、Cornerstone 或命令行中有什么方法可以做到这一点吗?
如果问题不是很清楚,我们深表歉意。老实说,我不确定如何表达我正在寻找的内容。
我在这里发现了一个关于 git 的类似问题;
GIT: determine revision based on a file
如果您必须在 VCS 之外使用 任何内容 并确定相应的版本并且不要将此数据添加到文件(文本文件)或存储库(二进制文件) - 它是 你的失败(Git-男孩必须受苦受难,因为他们没有直接关键词/但有污迹|干净的过滤器/和修订属性 /?/,但在 SVN 中你有这些可能性)。重新考虑您的工作流程并开始使用 Power!
在您当前的状态下(没有关键字,没有元数据)您可以(对于每个文件)
- 计算任何可用的未版本化文件的哈希值
- 为 repo 中的所有相关修订计算此文件的相同哈希值
- 比较哈希值并找到匹配项
抄袭 this answer,这里有一个快速但肮脏的批处理文件可以完成这项工作,假设输入文件已经在版本控制之下。
@echo off
set file=%1
set temp_file="temp.file"
if [%file%] == [] (
echo Usage: "%0 <file>"
exit /b
)
for /F "tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
svn cat -r %%R %file% > %temp_file%
fc %temp_file% %file% > nul
if errorlevel 0 if not errorlevel 1 echo Matches revision r%%R
del /Q %temp_file%
)
这会获取给定文件名的日志,并对每个修订执行以下操作:
- 将该版本的文件转储到磁盘上的临时文件
- 将转储的修订与输入文件进行比较
- 如果它们相等,
fc
将errorlevel
设置为 0,因此检查并输出Matches revision r###
- 删除临时文件