Init gix-присоединяют дополнительный repo с существующими файлами

sort команда может сделать это, но к сожалению, Вы не можете использовать --month-sort и --numeric-sort вместе. Так использование:

$ atq |
    sed 's/Jan/1/;s/Feb/2/;s/Mar/3/;s/Apr/4/;s/May/5/;s/Jun/6/;s/Jul/7/;s/Aug/8/;s/Sep/9/;s/Oct/10/;s/Nov/11/;s/Dec/12/' |
    sort -n -k6,6 -k3,4

Это преобразует сокращения месяца в их числовые значения, затем вид сначала в год (-k6,6), затем месяц и день (-k3,4). Вывод не будет иметь имен месяца, но если бы Вы действительно хотели, то Вы могли бы преобразовать тех, которые назад имеют другого sed.

$ atq |
    sed 's/Jan/1/;s/Feb/2/;s/Mar/3/;s/Apr/4/;s/May/5/;s/Jun/6/;s/Jul/7/;s/Aug/8/;s/Sep/9/;s/Oct/10/;s/Nov/11/;s/Dec/12/' |
    sort -n -k6,6 -k3,4 |
    sed 'h;s/^[0-9][0-9]*  *[A-Z][a-z][a-z] *\([0-9][0-9]*\).*/\1/;s/10/Oct/;s/11/Nov/;s/12/Dec/;s/1/Jan/;s/2/Feb/;s/3/Mar/;s/4/Apr/;s/5/May/;s/6/Jun/;s/7/Jul/;s/8/Aug/;s/9/Sep/;G;s/^\(.*\)\n\([0-9][0-9]*  *[A-Z][a-z][a-z] *\)[0-9][0-9]*\( .*\)/\2\1\3/'

Заметьте это s/12/Dec/ потребности прибыть прежде s/1/Jan/.

6
13.05.2013, 11:59
2 ответа

РЕДАКТИРОВАНИЕ 30.04.2015:

anarcat описал руководство для этого варианта использования, который он отправил в комментариях для этого ответа.

РЕДАКТИРОВАНИЕ 31.05.2013:

Спасибо за принятие! gioele, на который указывают в комментариях это reinject не работает в repos приложения мерзавца прямого режима, который имеет смысл и отчасти вынимает ветер из моего ответа. slm нашел использование альтернативного метода git annex add, который похоже, что gioele пошел с. Проверьте ответ slm для получения дополнительной информации об этом.

Исходный

Не услышали о приложении мерзавца; это - классный инструмент!

Хорошо, от того, что у меня есть чтение его на веб-сайте приложения мерзавца на новом компьютере, который можно сделать git clone из репозитория S3 и это не будет дорого, так как это только копирует символьные ссылки. Затем cd в него и git annex init <reponamehere> как обычно, сделать приложение мерзавца, знающее о repo.

Насколько я понимаю это, хитрая вещь, которую Вы пытаетесь сделать, делают приложение мерзавца, знающее о локальных копиях той машины данных repo. Я нашел команду на ее странице справочника названной reinject то, что я думаю, сделает то, что Вы хотите:

git annex reinject /path/to/files/* /path/to/repo

Можно хотеть добавить --fast опция, которая могла бы отключить "fsck" (термин приложения мерзавца для вычисления контрольной суммы файлы), который автоматически выполняется reinject. Это, конечно, немного опасно и даже не может работать: это не ясно ли reinject принимает --fast или нет.

Кроме того, Вам, возможно, понадобится некоторый find острота, если файлы Вы хотите reinject более сложны, чем единственный каталог. Что-то как:

find /path/to/files/* -type f -exec bash -c 'echo $1 "/path/to/repo/${1#/path/to/files}"' -- '{}' \;

Тот будет (я думать), повторяют путь каждого файла в /path/to/files при повторении пути назначения в repo с /path/to/files неизолированный. Замена echo с git annex reinject после того как Вы выполнили его, и Вы уверены, что вывод делает то, что Вы предназначаете. Используя find в сочетании с bash -c приносит великую державу и большую ответственность :)

Источник: работа в задании анализа данных, которое включает веселый объем пакетных обработок на файлах, и в значительной степени любящий мерзавца.

4
27.01.2020, 20:27
  • 1
    я не уверен, повторно вводит, делает то, что Вы думаете: git-annex.branchable.com/bugs / …. Я считал это, чтобы означать, что Вы хотите добавить новые файлы сверху файлов, которые уже были в repo, но не доступны ни на каком существующем приложении. BTW хорошее задание, выслеживающее это до сих пор. Я открыл билет, задав этот вопрос на сайте разработчиков здесь: git-annex.branchable.com/forum / … –  slm♦ 27.05.2013, 20:50
  • 2
    я соглашаюсь, что это - более типичный вариант использования, но я не думаю, существует любая причина для них запретить использование reinject когда существуют другие доступные копии, таким образом, я надеюсь, что они не сделали! Кроме того, я думал, что второй метод в том потоке форума был довольно весел..., который избавит от необходимости расширение переменной удара, которое я делал вполне приятно. –  Vanessa Phipps 28.05.2013, 00:17
  • 3
    Другая проблема с этим решением состоит в том, что оно не работает в прямом режиме: "приложение мерзавца: Вы не можете выполнить эту команду в прямом репозитории режима". –  gioele 28.05.2013, 15:29
  • 4
    , который имеет смысл. Предположение там не является большим количеством точки к reinject когда filepath содержит данные. Это заставляет меня съежиться, но возможно можно просто перейти файлы на их соответствующие местоположения в repo, затем работать git annex fsck? –  Vanessa Phipps 29.05.2013, 23:25
  • 5
    я записал полное практическое руководство для этого здесь git-annex.branchable.com/tips / великий человек … –  anarcat 25.04.2014, 16:30

Я задал Ваш вопрос разработчику приложения мерзавца на их форумах. Вот мой/Ваш вопрос:

У меня есть вопрос на установке нового repo. Действительно ли возможно инициализировать новый repo использование файлов, которые уже локальны на, говорят что мой ноутбук, вместо того, чтобы загрузить их с удаленного репозитория S3? Извините, если это неясно. Но я пытаюсь использовать файлы, которые локальны на моем ноутбуке так я, Дон должен пройти испытание загрузки их от S3.

Я должен также упомянуть, что у меня нет полного набора всех файлов локально на ноутбуке по сравнению с тем, что уже находится в репозитории S3.

Автор git-annex, Joey, сказал, что можно использовать одну из следующих опций:

  1. Использовать git annex reinject питаться в определенных файлах.
  2. Проверьте все локальные файлы во временном каталоге. Или Помощник приложения мерзавца или руководство git annex add заметит, имеют ли эти файлы то же содержание как файлы уже в репозитории. Файлы затем будут доступны в двух местах, временном каталоге и везде, где он был проверен в Ваш репозиторий прежде. Можно затем удалить временный каталог.
4
27.01.2020, 20:27
  • 1
    Это похоже git annex add единственный путь состоит в том, чтобы войти в прямой режим. –  gioele 31.05.2013, 15:51
  • 2
    Каков был фактический рабочий процесс, который Вы использовали? Мне было бы любопытно получить это здесь для других в будущем. Я уверен, что этот вопрос подойдет снова, и он не был точно ясно определен. –  slm♦ 31.05.2013, 16:04

Теги

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