看来我无法保存用于将某些 Subversion 存储库转换为 Mercurial 存储库的脚本,更具体地说是文件映射。
如何获取两个目录(添加/删除的目录、文件等)之间的差异并在文本文件中提供结果?
答案1
使用功能齐全的 diff 工具,例如差异合并或者kdiff3(均免费)您可以通过比较以下批处理文件的输出文件轻松检查差异。实际上,您需要提供两个目录作为参数,但您也可以直接在行中设置它们SET dir...
- 例如SET dir1=c:\svn
和SET dir2=c:\hg
。脚本从文件名中删除路径前缀,否则所有行都会有所不同。
@ECHO OFF
SetLocal EnableDelayedExpansion
SET dir1=%1
SET dir2=%2
ECHO. 2>dir1.txt
ECHO. 2>dir2.txt
FOR /f "tokens=*" %%F IN ('DIR /s /b /o:n %dir1%') DO (
SET tmp=%%F
ECHO !tmp:%dir1%\=! >> dir1.txt
)
FOR /f "tokens=*" %%F IN ('DIR /s /b /o:n %dir2%') DO (
SET tmp=%%F
ECHO !tmp:%dir2%\=! >> dir2.txt
)
EndLocal
然后只需比较两个输出文件dir1.txt
并dir2.txt
:
kdiff3 dir1.txt dir2.txt