Проверять наличие дубликата файла (содержимого) в git? - PullRequest
2 голосов
/ 26 апреля 2011

В моем «проекте / репо» у меня есть два проекта MS Visual Studio, один для основного кода и независимый для тестов.У меня есть некоторые файлы, которые являются общими для обоих (в смысле копирования и вставки), и я хотел бы увидеть / проверить, какие они есть.

Какие правильные команды Git (или щелчки в меню Gui), чтобы увидеть, использовал ли я один и тот же BLOB-объект контента дважды в общем дереве репо?Если я правильно прочитал все руководства, git должен иметь один SHA1 для двух копий одного и того же содержимого файла и уже знать об этом.Я надеюсь, что у Git есть команда, которая находит и отображает эти дубликаты путей к файлам использования.

В конечном счете, я бы хотел иметь возможность узнать различия между версиями, когда есть общий BLA-объект предка SHA1 (но необщее место).[т.е. во время тестирования одна версия обновляется раньше другой версии ...]

Я знаю, что не рекомендуется иметь такие дубликаты, но так закончился процесс: - (

У меня есть Msysgit и GitExtensions на Windows ...

1 Ответ

5 голосов
/ 26 апреля 2011

Вы можете сделать что-то вроде

git ls-tree -r HEAD

Для просмотра BLOB-объектов и файлов.

Если вы не хотите вручную просматривать те же самые двоичные объекты:

git ls-tree -r HEAD |
    sort -t ' ' -k 3 |
        perl -ne '$1 && / $1\t/ && print "\e[0;31m" ; / ([0-9a-f]{40})\t/; print "$_\e[0m"'

От: Git: Найти дубликаты BLOB-объектов (файлов) в этом дереве

...