Как создать детерминированный tar.gz использование архива мерзавца?

Этот вопрос задали прежде на SuperUser. Первый ответ использует удаленный файл, который не соответствует Вашим требованиям, но второй ответ, который предлагает использовать локальный псевдоним, мог быть решением Вашей проблемы.

Важно, чтобы command-to-be-executed был сохранен на локальной машине, поскольку это будет содержать пароль для открытия зашифрованного диска. Это - причина, почему я не могу поместить команду в .profile на удаленной машине.

Это, вероятно, не безопасно. Если я использую echo управляйте как команда ssh, она обнаруживается в ps на удаленном сервере:

martin@martin ~ % ssh dev2 "echo hello; ps aux|grep echo"

hello
root     25358  0.0  0.0   5848  1296 ?        Ss   11:27   0:00 bash -c echo hello; ps aux|grep echo
root     25362  0.0  0.0   5012   828 ?        S    11:27   0:00 grep echo

4
10.05.2015, 11:01
1 ответ

Когда вы делаете простой экспорт с головой, внутренний меток инициализируется на основе времени Chay TimeStamp. Когда вы используете более современные параметры фильтрации, Timestamp устанавливается в текущее время. Чтобы изменить поведение, вам нужно вилочную / патч Git и изменить второй сценарий, например, доказательство концепции:

diff --git a/archive.c b/archive.c
index 94a9981..0ab2264 100644
--- a/archive.c
+++ b/archive.c
@@ -368,7 +368,7 @@ static void parse_treeish_arg(const char **argv,
                archive_time = commit->date;
        } else {
                commit_sha1 = NULL;
-               archive_time = time(NULL);
+               archive_time = 0;
        }

        tree = parse_tree_indirect(sha1);
3
27.01.2020, 20:58

Теги

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