* [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