ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Anton Farygin <rider@altlinux.com>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] Как сделать репозиторий в git
Date: Thu, 27 Apr 2006 10:15:35 +0400
Message-ID: <44506187.8040008@altlinux.com> (raw)
In-Reply-To: <20060426213633.GF13934@basalt.office.altlinux.org>

Dmitry V. Levin wrote:
> On Wed, Apr 26, 2006 at 10:46:06PM +0400, Anton Farygin wrote:
>> Интересно было бы взглянуть на:
>> 1) формат buildspec
> 
> Тот формат, который сформировался на сегодняшний день, устроен следующим
> образом.
> 
> buildspec - простой текстовый файл, обрабатываемый построчно.
> Каждая строка имеет вид "директива: параметры"
> Директивы такие: spec, copy, gzip, bzip2, tar, tar.gz, tar.bz2
> - т.е. кажется всё, что нужно для извлечения из репозитория.
> 
> Параметр spec: путь_к_файлу
> Параметры copy|gzip|bzip2: glob_pattern..
> Параметры tar|tar.gz|tar.bz2: путь_к_каталогу [options]
>   где options это
>     spec=путь_к_файлу - путь к specfile'у, из которого можно извлечь имя
>       и/или версию для тарболла;
>     name=имя_архива - имя для тарболла;
>     version=версия_архива - версия для тарболла.
> 
> Фраза "spec-файл, из которого можно извлечь имя" означает, что команда
> sed '/^Name:[[:space:]]*/!d;s///;q' <spec-файл
> выводит нормальное имя.  Имя называется нормальным, если не содержит
> недопустимых символов.
> Аналогично трактуется и фраза про версию.
> 
> Примеры я уже приводил в этом треде.  Могу ещё придумать, если нужно.

Вопрос: если я правильно понял, то .buildspec будет распарсиваться неким 
скриптом на стороне сервера (или локально?)

А можно ли предложить какой-то инструмент, для сборки пакета из 
локальной копии репозитария, минуя hasher ?

Т.е. - я очень много собираю без hasher'а, прямо в локальной системе.
> 
>> 2) типовой набор команд для того, что бы с этим работать
> 
> $ git2tar -h
> git2tar - make tarball from git package repository.
> 
> Usage: git2tar [options] <path-to-git-directory> <output-tarball-name>
> 
> Options:
>   -b, --buildspec=FILENAME          buildspec file name;
>   --bzip2                           compress output archive using bzip2;
>   --gzip                            compress output archive using gzip;
>   -t, --tree-ish=ID                 tree, commit or tag object name;
>   -q, --quiet                       try to be more quiet;
>   -v, --verbose                     print a message for each action;
>   -V, --version                     print program version and exit;
>   -h, --help                        show this text and exit.
>     
> Т.е. есть простая утилита, у которой на входе git-репозиторий и tree-ish
> (по умолчанию --tree-ish=HEAD) и на выходе tarball специального вида, из
> которого hasher скоро научится собирать пакеты.
> 
> Ещё раз обращаю внимание: собирать пакеты надо из того, что есть в
> репозитории, а не из неза'commit'енного checkout'а.  Те, кто хоть немного
> представляют себе, как устроен git, согласятся, что это не создаст
> дополнительных сложностей.  Зато появится одно полезное свойство - вряд ли
> удастся забыть за'commit'ить нужное изменение.
> 
>> - если я правильно понял, то предполагается каждый пакет держать в 
>> отдельном GIT репозитарии.
> 
> Несомненно.  Я не вижу других вариантов.
> 
>> Вопрос собственно простой: каким образом
> 
> Я пока не определился, как именно будет устроен центральный репозиторий
> для Sisyphus.  Тут есть варианты, надо понять, на чём остановиться.
> Я сейчас занимаюсь доработкой попакетного репозитория, объединительные
> репозитории - это следующий этап.

Ясно. Меня в большей степени интересует вопрос с объединением. И с 
правами доступа к каждому из пакетов (желательно что бы права доступа 
были в достаточной мере открыты - что-то вроде teams по интересам).

> 
>> 1) скачать все пакеты
> 
> Скачать список всех пакетов.
> Скачать (git-clone, git-fetch, etc) каждый пакет из списка.
> 
>> 2) добавлять пакеты в центральный репозиторий
> 
> Видимо примерно так же, как и обновлять их (git-push).
> 
>> 3) удалять пакеты из центрального репозитория
> 
> Не думаю что удалить каталог это проблема. :)
> 
>> 4) обновлять весь центральный репозиторий (можно конечно сделать for i 
>> in *;do... done, то на мой взгляд в этом случае мы не отследим 
>> добавление/удаление пакетов.
> 
> Весь репозиторий - это каталог с репозиториями.  Можно использовать
> какой-нибудь dumb transport (e.g. rsync), можно прочитать список и сделать
> git-pull для каждого.
> 


И ещё пока вспомнил: крайне желателен инструмент, позволяющий закачивать 
  в git большие тарболлы минуя commit (или каким-то средством на стороне 
сервера).

Поясню:

например есть необходимость положить в git приложение, исходник которого 
в распакованном виде занимает 600Mb (например - openoffice.org).

в случае с тарболлом, который нужно из локального репозитария залить на 
сервер - трафик составит 600Mb исходящий (если не использовать сжатие на 
уровне ssh).

При этом у мантейнера канал может быть достаточно дохлый (например модем 
или gprs).

Было бы очень здорово предоставить инструмент, который смог бы:
- выкачивать файл с заданного URL
- проверять md5sum
- распаковывать
- коммитить

Rgds,
Rider


  parent reply	other threads:[~2006-04-27  6:15 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-25 22:47 Dmitry V. Levin
2006-04-25 23:02 ` Alexey Tourbin
2006-04-25 23:10   ` Dmitry V. Levin
2006-04-25 23:18     ` Alexey Tourbin
2006-04-25 23:34       ` Dmitry V. Levin
2006-04-26  8:36         ` Michael Shigorin
2006-04-26  8:45           ` Alexey Tourbin
2006-04-26  9:21             ` Michael Shigorin
2006-04-26 10:30               ` Dmitry V. Levin
2006-04-26 12:27                 ` Michael Shigorin
2006-04-26 13:42         ` Alexey Tourbin
2006-04-26 13:53           ` Michael Shigorin
2006-04-26 18:49             ` Anton Farygin
2006-04-26 18:58               ` Michael Shigorin
2006-04-26 19:26                 ` Anton Farygin
2006-04-26 20:40                   ` Dmitry V. Levin
2006-04-27  5:45                     ` Anton Farygin
2006-04-25 23:46 ` Alexey Tourbin
2006-04-25 23:56   ` Dmitry V. Levin
2006-04-26  0:06     ` Alexey Tourbin
2006-04-26  0:21       ` Dmitry V. Levin
2006-04-26  8:56         ` [devel] BuildRequires(pre) Michael Shigorin
2006-04-26 10:31           ` Dmitry V. Levin
2006-04-28  9:35         ` [devel] Как сделать репозиторий в git Sergey Bolshakov
2006-04-28  9:53           ` Alexey I. Froloff
2006-04-28  9:55             ` Sergey Bolshakov
2006-04-29 23:30           ` Dmitry V. Levin
2006-04-29 23:39             ` Alexey Tourbin
2006-04-30 13:15               ` Dmitry V. Levin
2006-04-26  5:11 ` Alexey I. Froloff
2006-04-26 10:33   ` Dmitry V. Levin
2006-04-26 23:34     ` Dmitry V. Levin
2006-04-28  8:22     ` Alexey I. Froloff
2006-04-28 12:06       ` Dmitry V. Levin
2006-04-28 12:23         ` Alexey I. Froloff
2006-04-28 12:35           ` Dmitry V. Levin
2006-04-28 12:47             ` Alexey I. Froloff
2006-04-29  9:20               ` Kirill A. Shutemov
2006-04-30 23:07                 ` Dmitry V. Levin
2006-05-01  9:43                   ` Alexey I. Froloff
2006-04-26  7:13 ` Vital Khilko
2006-04-26 10:35   ` Dmitry V. Levin
2006-04-26 11:21     ` Kirill A. Shutemov
2006-04-26 18:46 ` Anton Farygin
2006-04-26 21:36   ` Dmitry V. Levin
2006-04-26 21:58     ` Alexey I. Froloff
2006-04-26 22:16       ` Dmitry V. Levin
2006-04-27  5:51         ` Alexey I. Froloff
2006-04-27 12:33           ` Dmitry V. Levin
2006-04-27 13:01             ` Alexey I. Froloff
2006-04-27 23:55               ` Dmitry V. Levin
2006-04-28  7:04                 ` Anton Farygin
2006-04-28 12:08                   ` Dmitry V. Levin
2006-04-27  6:15     ` Anton Farygin [this message]
2006-04-27 12:47       ` Dmitry V. Levin
2006-04-27 13:25         ` Sergey Vlasov
2006-04-27 13:30           ` Dmitry V. Levin
2006-04-27 13:48         ` Anton Farygin
2006-04-27 14:18         ` Michael Shigorin
2006-04-27 14:00     ` Kirill A. Shutemov
2006-04-27 14:14       ` Alexey I. Froloff
2006-04-27 14:44         ` Dmitry V. Levin
2006-04-27 22:26     ` [devel] Как назвать утилиту Dmitry V. Levin
2006-04-27 16:53       ` Kirill Maslinsky
2006-04-28  7:07       ` Anton Farygin
2006-04-27  7:19 ` [devel] Как сделать репозиторий в git Stanislav Ievlev
2006-04-27 12:56   ` Dmitry V. Levin
2006-04-27 13:03     ` Alexey I. Froloff
2006-04-27 13:08       ` Dmitry V. Levin
2006-04-27 13:32     ` Sviatoslav Sviridov
2006-04-27 13:57     ` Anton Farygin
2006-04-27 14:24     ` Michael Shigorin
2006-04-27 22:06     ` [devel] Как назвать файл с правилами Dmitry V. Levin
2006-04-27 22:32       ` Sviatoslav Sviridov
2006-04-27 16:54         ` Kirill Maslinsky
2006-04-28 12:38           ` Dmitry V. Levin
2006-04-28 11:05       ` [devel] [JT] " Michael Shigorin
2006-04-28 11:09         ` Led
2006-04-28 11:15           ` Michael Shigorin
2006-04-28 11:27             ` Led
2006-04-28 10:56 ` [devel] Как сделать репозиторий в git Anton Farygin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44506187.8040008@altlinux.com \
    --to=rider@altlinux.com \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git