ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] git и пустой каталог (syslog-ng 3.6.1)
@ 2014-12-06 14:55 Sergey Y. Afonin
  2014-12-06 15:27 ` Евгений Терешков
  0 siblings, 1 reply; 4+ messages in thread
From: Sergey Y. Afonin @ 2014-12-06 14:55 UTC (permalink / raw)
  To: devel

Приветствую.

Пробую собрать новый syslog-ng, и столкнулся с проблемой пустых каталогов.
Вообще, репозитарий с 3.4.7 их содержит, упоминаются они в ".gitmodules".
Попытка смержить master с git://github.com/balabit/syslog-ng syslog-ng-3.6.1
вызывает ряд конфликтов. Среди прочего вот такой:

warning: Failed to merge submodule modules/afmongodb/libmongo-client (not checked out)
...
CONFLICT (submodule): Merge conflict in modules/afmongodb/libmongo-client

Файловые конфликты разруливаются, но вот что с этим делать, не очень понятно.
Если ничего не делать, то получается 

$ git commit -a
error: unable to index file modules/afmongodb/libmongo-client
fatal: updating files failed

Если каталогу libmongo-client сделать "git rm/git add", всё получается, но
каталог libmongo-client перестаёт попадать в тарбол. Остальные два пустых
каталога из ".gitmodules" в тарбол попадают. Как его правильно вернуть ?

-- 
С уважением, Сергей Афонин


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] git и пустой каталог (syslog-ng 3.6.1)
  2014-12-06 14:55 [devel] git и пустой каталог (syslog-ng 3.6.1) Sergey Y. Afonin
@ 2014-12-06 15:27 ` Евгений Терешков
  2014-12-06 15:48   ` Sergey Y. Afonin
  0 siblings, 1 reply; 4+ messages in thread
From: Евгений Терешков @ 2014-12-06 15:27 UTC (permalink / raw)
  To: devel

"Sergey Y. Afonin" пишет:

> Пробую собрать новый syslog-ng, и столкнулся с проблемой пустых каталогов.
> Вообще, репозитарий с 3.4.7 их содержит, упоминаются они в ".gitmodules".
> Попытка смержить master с git://github.com/balabit/syslog-ng syslog-ng-3.6.1
> вызывает ряд конфликтов. Среди прочего вот такой:
> warning: Failed to merge submodule modules/afmongodb/libmongo-client (not checked out)
                           ^^^^^^^^^

это не (только) пустой каталог, это подмодуль git, ссылающийся на внешний
проект. Подробнее см. в документации к git.

В этой рассылке уже обсуждались (в 2010 и 2013гг) , что делать в таких
случаях, искать по слову submodule в теме.

Тоже с этим столкнулся недавно и пока остановился на вытаскивании
подмодулей в отдельные ветки.

-- 
С уважением, Терешков Евгений.
Jabber ID: evg@altlinux.org, evg_krsk@jabber.ru

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] git и пустой каталог (syslog-ng 3.6.1)
  2014-12-06 15:27 ` Евгений Терешков
@ 2014-12-06 15:48   ` Sergey Y. Afonin
  2014-12-09  9:18     ` Sergey Afonin
  0 siblings, 1 reply; 4+ messages in thread
From: Sergey Y. Afonin @ 2014-12-06 15:48 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Saturday 06 December 2014, Евгений Терешков wrote:

> > вызывает ряд конфликтов. Среди прочего вот такой:
> > warning: Failed to merge submodule modules/afmongodb/libmongo-client (not checked out)
> 
> это не (только) пустой каталог, это подмодуль git, ссылающийся на внешний
> проект. Подробнее см. в документации к git.

Это я понял и почитал. Тут немного другой вопрос, и это, действительно,
"пустой каталог" в данном случае. То есть, сабмодули описаны, но не 
нужны и не используются. Всё бы ничего, но в Makefile этот libmongo-client
упоминается, и на него натыкается automake:

lib/Makefile.am:1: required directory ./modules/afmongodb/libmongo-client does not exist
Makefile.am:109:   `lib/Makefile.am' included from here

Причём, раньше этот самый ./modules/afmongodb/libmongo-client в тарбол
попадал. Да и сейчас два других пустых каталога пакуются. То есть, есть
какой-то путь решить этот частный случай.

-- 
С уважением, Сергей Афонин


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] git и пустой каталог (syslog-ng 3.6.1)
  2014-12-06 15:48   ` Sergey Y. Afonin
@ 2014-12-09  9:18     ` Sergey Afonin
  0 siblings, 0 replies; 4+ messages in thread
From: Sergey Afonin @ 2014-12-09  9:18 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Saturday 06 December 2014, Sergey Y. Afonin wrote:

> Причём, раньше этот самый ./modules/afmongodb/libmongo-client в тарбол
> попадал.

Немного ещё почитал... Пока получается, что пустой каталог для сабмодуля
попадает в репозитарий нормальным образом только при клонировании (ну
или втаскивании изменений из репозитария с сабмодулями). Поломанное 
состояние выглядит как-то так:

Это в исходном состоянии (3.4.7):

$ git submodule status
-ec9066dcc66b33e3767b4729f86844549f004657 lib/ivykis
-7142f05e2aaf61b47cf0472d9e9f468d08a4fdc0 modules/afamqp/rabbitmq-c
-9cbb488fd41464ae85fd1870235300197cbc24ac modules/afmongodb/libmongo-client

А это после git pull git://github.com/balabit/syslog-ng syslog-ng-3.6.1

$ git submodule status
-ec9066dcc66b33e3767b4729f86844549f004657 lib/ivykis
-259c5c0b5fe87c2db41e7a989cc0ab5865170d81 lib/jsonc
-7142f05e2aaf61b47cf0472d9e9f468d08a4fdc0 modules/afamqp/rabbitmq-c
U0000000000000000000000000000000000000000 modules/afmongodb/libmongo-client

видно, что добавился lib/jsonc, а modules/afmongodb/libmongo-client
поломался.

Далее, можно сделать так:

rm -rf ./modules/afmongodb/libmongo-client
git submodule add https://github.com/algernon/libmongo-client.git ./modules/afmongodb/libmongo-client
git submodule deinit -f ./modules/afmongodb/libmongo-client  # тут каталог очистится
git submodule init ./modules/afmongodb/libmongo-client
git add ./modules/afmongodb/libmongo-client

git commit -am "recovered libmongo-client submodule"
[master b7088fb] recovered libmongo-client submodule
 1 file changed, 1 insertion(+)
 create mode 160000 modules/afmongodb/libmongo-client

Видно, что каталог попал в git, и пустой.

В итоге (на самом деле, это после "git submodule add ..." уже так
отображается):

$ git submodule status
-ec9066dcc66b33e3767b4729f86844549f004657 lib/ivykis
-259c5c0b5fe87c2db41e7a989cc0ab5865170d81 lib/jsonc
-7142f05e2aaf61b47cf0472d9e9f468d08a4fdc0 modules/afamqp/rabbitmq-c
-97960a3bcfcae767f9012e9ddc067219f9ef89f1 modules/afmongodb/libmongo-client

Коммит выглядит вот так:

==========================================================
commit b7088fbafc0f1df0d7a5f83b1911791bf7ec0539
Author: Sergey Y. Afonin <asy@altlinux.org>
Date:   Tue Dec 9 12:40:22 2014 +0400

    recovered libmongo-client submodule

diff --git a/modules/afmongodb/libmongo-client b/modules/afmongodb/libmongo-client
new file mode 160000
index 0000000..97960a3
--- /dev/null
+++ b/modules/afmongodb/libmongo-client
@@ -0,0 +1 @@
+Subproject commit 97960a3bcfcae767f9012e9ddc067219f9ef89f1
==========================================================

-- 
С уважением, Сергей Афонин.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-12-09  9:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-06 14:55 [devel] git и пустой каталог (syslog-ng 3.6.1) Sergey Y. Afonin
2014-12-06 15:27 ` Евгений Терешков
2014-12-06 15:48   ` Sergey Y. Afonin
2014-12-09  9:18     ` Sergey Afonin

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