我需要看看两个目录中包含不同版本的软件源代码之间发生了什么变化。虽然我找到了获取唯一.diff文件的方法,但是如何为两个目录中的每个更改文件获取不同的文件?我需要这个,因为“主”大约是6MB,并且想要一些更方便的东西。比较两个目录与每个文件单独的差异输出
0
A
回答
0
如果你想比较源代码,最好把它提交给源代码程序作为“svn”。
完成之后。做您上传的代码和管道DIFF它file.diff
svn diff --old svn:url1 --new svn:url2 > file.diff
1
我来解决这个问题了,所以我结束了一个shell脚本的一些线路。它有三个参数:输出的源和目标目录(用于diff)和目标文件夹(应该存在)。
这有点不好意思,但也许对某人有用。所以请小心使用,特别是如果您的路径有特殊字符。
#!/bin/sh
DIFFARGS="-wb"
LANG=C
TARGET=$3
SRC=`echo $1 | sed -e 's/\//\\\\\\//g'`
DST=`echo $2 | sed -e 's/\//\\\\\\//g'`
if [ ! -d "$TARGET" ]; then
echo "'$TARGET' is not a directory." >&2
exit 1
fi
diff -rqN $DIFFARGS "$1" "$2" | sed "s/Files $SRC\/\(.*\?\) and $DST\/\(.*\?\) differ/\1/" | \
while read file
do
if [ ! -d "$TARGET/`dirname \"$file\"`" ]; then
mkdir -p "$TARGET/`dirname \"$file\"`"
fi
diff $DIFFARGS -N "$1/$file" "$2/$file" > "$TARGET"/"$file.diff"
done
0
bash for循环将适用于您。以下将使用C源代码来区分两个目录,并为每个文件生成一个单独的diff。
for FILE in $(find <FIRST_DIR> -name '*.[ch]'); do DIFF=<DIFF_DIR>/$(echo $FILE | grep -o '[-_a-zA-Z0-9.]*$').diff; diff -u $FILE <SECOND_DIR>/$FILE > $DIFF; done
使用正确的补丁级别为开头的行+++
相关问题
- 1. 比较2个目录,并显示每个文件的差异
- 2. 比较两个文本文件并找出差异
- 3. 比较两个单独的文档VBA
- 4. 用文件比较两个目录,然后在另一个文件中给出结果差异。C#
- 5. 来自两个不同目录的两个文件的差异
- 6. Git:比较两个提交的差异
- 7. 比较两个SQLite表的差异
- 8. 比较两个表格的差异
- 9. 比较两个查询结果与输出差分
- 10. 比较两个表与输出差分 - T-SQL
- 11. 差异文件只比较每行的前n个字符
- 12. 比较两个表来检查差异
- 13. 比较两个NSDictionaries并查找差异
- 14. 比较两个文本文件并仅保存第二个文件的差异
- 15. 比较两个文件,并保存在Linux的差异
- 16. 比较两个文件的内容,显示差异
- 17. 比较两个CSV文件的列并删除差异
- 18. 比较两个时间戳每分钟的差异?
- 19. 如何比较两个unix命令的输出以找出差异?
- 20. 在Clojure中的两个单独目录中列出文件
- 21. 如何比较两个文件并提取差异?
- 22. 比较两个xml文件并获得差异
- 23. 比较两个csv文件并发现差异
- 24. Python程序比较两个文件以显示差异
- 25. 如何比较两个css文件并仅复制差异?
- 26. 两个ArrayLists中的项目比较和返回差异
- 27. shell脚本比较两个文件并将差异写入第三个文件
- 28. 比较XML文件并生成仅包含差异的输出
- 29. 的Python:比较两个CSV文件,并打印出来,我需要比较两个CSV文件,并打印出第三CSV文件的不同差异
- 30. Python 3.6:比较两个大gzipped csv文件和获取差异记录
我使用Git这样做是因为我没有SVN安装。问题是我想要一种方法来为每个不同的文件获取一个.diff,而不是全局的.diff。无论如何,我会处理整个文件,因为显然没有解决方案。 – LeoTh3o 2013-03-07 18:37:33