Мерзавец - нахождение имени файла от SHA1

В PIVOT есть JIRA, чтобы сделать это изначально, без огромного оператора CASE для каждого значения:

https://issues.apache.org/jira/browse/HIVE -3776

Прошу проголосовать за JIRA, чтобы она была реализована раньше. Как только в Hive SQL, Spark обычно не слишком сильно отстает, и в конечном итоге он будет реализован и в Spark.

33
задан git-noob 20 January 2009 в 07:12
поделиться

3 ответа

Нет такого прямого отображения в мерзавце, как название файла является частью древовидного объекта, который содержит файл, не объекта блоба, который является содержанием файла.

Это не обычная операция, чтобы хотеть получить имя файла от хеша SHA1 поэтому, возможно, Вы могли подробно остановиться на варианте использования реального мира для него?

при рассмотрении текущих файлов (т.е. ГЛАВНАЯ фиксация) можно попробовать следующее.

git ls-tree -r HEAD | grep <SHA1>

, Если Вы хотите найти содержание в предыдущих фиксациях, необходимо будет сделать что-то больше как это.

git rev-list <commit-list> | \
xargs -n1 -iX sh -c "git ls-tree -r X | grep <SHA1> && echo X"
27
ответ дан 27 November 2019 в 16:46
поделиться

Фиксируйте файл и отметьте sha1 хеш объекта фиксации. После того использования

git ls-tree <commit-sha1>

и Вы получите названия файлов с хешами.

Проверка страницы руководства для большего количества опций.

-1
ответ дан 27 November 2019 в 16:46
поделиться

Следующий сценарий оболочки в большой степени основан , Какая фиксация имеет этот блоб? и ответ, предоставленный Aristotle Pagaltzis.

#!/bin/sh

obj_hash=$1

# go over all trees
git log --pretty=format:'%T %h %s' \
| while read tree commit subject ; do
     git ls-tree -r $tree | grep  "$obj_hash" \
     | while read a b hash filename ; do
        if [ "$hash" == "$obj_hash" ]; then
          f=$filename
          echo $f
          break
        fi
        if $f ; then break; fi
      done
      if $f; then break; fi
done

я уверен, что кто-то мог украсить этот сценарий, но он действительно работает. Идея состоит в том, чтобы посмотреть на все фиксировавшие деревья и искать Ваш определенный хеш.

7
ответ дан 27 November 2019 в 16:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: