查找两个 git 存储库在没有 git 历史的情况下分叉的位置
Find where two git repositories forked without git history
我正在寻找这两个存储库的确切分支位置,以便我可以看到对原始代码进行了哪些更改。
https://github.com/apache/cassandra
https://github.com/wlloyd/eiger
第二个没有 git 历史记录。我已经确定它不是任何版本的分支。有一些文件,例如 CHANGES.txt(我很确定)自 fork 以来没有被修改,也许这有帮助。也许有一个聪明的差异技巧?
没有历史记录,几乎不可能找到分叉的时间。
但是,如果您只对两个代码库之间的变化感兴趣(即:分叉和原始回购的当前 master
),您可以执行以下操作:
- 在本地克隆两个 repos(我假设它们是从同一个本地目录克隆的)
- 运行
diff -r cassandra eiger | grep -v .git
(也许您可以从 diff -rq cassandra eiger | grep -v .git
开始了解受影响的文件)
现在,如果您想大致了解何时进行了分叉,您可以尝试在原始仓库中找到提交,这样可以最大限度地减少差异的数量。你可以尝试这样的事情:
cd cassandra
for SHA_1 in $(git rev-list master); do
git checkout $SHA_1
pushd ..
echo -n $SHA_1\; >> diffs.csv
diff -r cassandra eiger | grep -v .git | wc -l >> diffs.csv
popd
done
现在你只需要找到最小化第二列的线
我正在寻找这两个存储库的确切分支位置,以便我可以看到对原始代码进行了哪些更改。
https://github.com/apache/cassandra
https://github.com/wlloyd/eiger
第二个没有 git 历史记录。我已经确定它不是任何版本的分支。有一些文件,例如 CHANGES.txt(我很确定)自 fork 以来没有被修改,也许这有帮助。也许有一个聪明的差异技巧?
没有历史记录,几乎不可能找到分叉的时间。
但是,如果您只对两个代码库之间的变化感兴趣(即:分叉和原始回购的当前 master
),您可以执行以下操作:
- 在本地克隆两个 repos(我假设它们是从同一个本地目录克隆的)
- 运行
diff -r cassandra eiger | grep -v .git
(也许您可以从diff -rq cassandra eiger | grep -v .git
开始了解受影响的文件)
现在,如果您想大致了解何时进行了分叉,您可以尝试在原始仓库中找到提交,这样可以最大限度地减少差异的数量。你可以尝试这样的事情:
cd cassandra
for SHA_1 in $(git rev-list master); do
git checkout $SHA_1
pushd ..
echo -n $SHA_1\; >> diffs.csv
diff -r cassandra eiger | grep -v .git | wc -l >> diffs.csv
popd
done
现在你只需要找到最小化第二列的线