* [devel] git -- хитрая задачка @ 2010-08-24 8:31 Денис Смирнов 2010-08-24 9:17 ` Андрей Черепанов ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 8:31 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 972 bytes --] Имеется множество git-репозиториев (около тысячи). Большая часть их них -- устаревшие backup'ы, но какие определить по имени или еще каким-либо очевидным характеристикам невозможно. Разобраться в этом кошмаре вручную -- тем более. Задача -- выявить и удалить старье (которого там процентов 90). Лобовое решение: прогнать для каждого бранча каждого репозитория git log, положить результат в sqlite (commit id/путь к репо/бранч). Также положить в базу последний commit id каждого бранча каждого репозитория. После этого я могу легко определить есть ли такой commit id в другом репозитории. И если есть, и это не последний коммит в бранче -- то наш бранч явно стухший и его можно удалить. Такое решение мне не нравится тем, что придется строить базу по миллионам commit'ов. Можно ли придумать что-то значительно шустрее? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 8:31 [devel] git -- хитрая задачка Денис Смирнов @ 2010-08-24 9:17 ` Андрей Черепанов 2010-08-24 9:40 ` Денис Смирнов 2010-08-24 9:39 ` Alexander Myltsev 2010-08-24 9:53 ` Dmitry V. Levin 2 siblings, 1 reply; 23+ messages in thread From: Андрей Черепанов @ 2010-08-24 9:17 UTC (permalink / raw) To: ALT Linux Team development discussions 24 августа 2010 Денис Смирнов написал: > Имеется множество git-репозиториев (около тысячи). > Большая часть их них -- устаревшие backup'ы, но какие определить > по имени или еще каким-либо очевидным характеристикам невозможно. > Разобраться в этом кошмаре вручную -- тем более. > > Задача -- выявить и удалить старье (которого там процентов 90). > > Лобовое решение: прогнать для каждого бранча каждого репозитория git log, > положить результат в sqlite (commit id/путь к репо/бранч). Также положить > в базу последний commit id каждого бранча каждого репозитория. > > После этого я могу легко определить есть ли такой commit id в другом > репозитории. И если есть, и это не последний коммит в бранче -- то наш > бранч явно стухший и его можно удалить. > > Такое решение мне не нравится тем, что придется строить базу по миллионам > commit'ов. > > Можно ли придумать что-то значительно шустрее? Как насчёт даты последней модификации? -- Андрей Черепанов ALT Linux cas@altlinux.ru ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:17 ` Андрей Черепанов @ 2010-08-24 9:40 ` Денис Смирнов 0 siblings, 0 replies; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 9:40 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 298 bytes --] On Tue, Aug 24, 2010 at 01:17:38PM +0400, Андрей Черепанов wrote: АЧ> Как насчёт даты последней модификации? Она не позволит выявить связаны репозитории или нет. -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 8:31 [devel] git -- хитрая задачка Денис Смирнов 2010-08-24 9:17 ` Андрей Черепанов @ 2010-08-24 9:39 ` Alexander Myltsev 2010-08-24 9:42 ` Денис Смирнов 2010-08-24 9:53 ` Dmitry V. Levin 2 siblings, 1 reply; 23+ messages in thread From: Alexander Myltsev @ 2010-08-24 9:39 UTC (permalink / raw) To: ALT Linux Team development discussions 2010/8/24 Денис Смирнов <mithraen@altlinux.ru>: > Такое решение мне не нравится тем, что придется строить базу по миллионам > commit'ов. Миллион вроде не очень большое число (см. "мегагерц", "мегабайт"). Я бы попробовал. > Можно ли придумать что-то значительно шустрее? Можно воспользоваться тем, что родственные репозитории всегда имеют общие корни (коммиты без родителей). То есть сначала находим во всех репозиториях все корни, а потом решаем задачу только в "родственных группах". (Правда, будет ли это сильно шустрее -- неизвестно.) -- AVM ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:39 ` Alexander Myltsev @ 2010-08-24 9:42 ` Денис Смирнов 2010-08-24 9:47 ` Alexander Myltsev 2010-08-24 9:49 ` Andrey Rahmatullin 0 siblings, 2 replies; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 9:42 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 891 bytes --] On Tue, Aug 24, 2010 at 01:39:31PM +0400, Alexander Myltsev wrote: AM> Миллион вроде не очень большое число (см. "мегагерц", "мегабайт"). Я AM> бы попробовал. Просто все алгоритмы которые мне приходили в голову отнюдь не линейные по количеству необходимых операций от количества репозиториев. AM> Можно воспользоваться тем, что родственные репозитории всегда имеют AM> общие корни (коммиты без родителей). То есть сначала находим во всех AM> репозиториях все корни, а потом решаем задачу только в "родственных AM> группах". (Правда, будет ли это сильно шустрее -- неизвестно.) Это гениально! Спасибо! В родственных группах можно уже не строить базу. А есть ли какой то способ зная id коммита определить есть ли он в истории некоего коммита? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:42 ` Денис Смирнов @ 2010-08-24 9:47 ` Alexander Myltsev 2010-08-24 9:49 ` Andrey Rahmatullin 1 sibling, 0 replies; 23+ messages in thread From: Alexander Myltsev @ 2010-08-24 9:47 UTC (permalink / raw) To: ALT Linux Team development discussions 2010/8/24 Денис Смирнов <mithraen@altlinux.ru>: > В родственных группах можно уже не строить базу. > > А есть ли какой то способ зная id коммита определить есть ли он в истории > некоего коммита? Нет, базу строить всё-таки придётся :-). -- AVM ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:42 ` Денис Смирнов 2010-08-24 9:47 ` Alexander Myltsev @ 2010-08-24 9:49 ` Andrey Rahmatullin 2010-08-24 9:58 ` Dmitry V. Levin 2010-08-24 17:58 ` Денис Смирнов 1 sibling, 2 replies; 23+ messages in thread From: Andrey Rahmatullin @ 2010-08-24 9:49 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 463 bytes --] On Tue, Aug 24, 2010 at 01:42:47PM +0400, Денис Смирнов wrote: > А есть ли какой то способ зная id коммита определить есть ли он в истории > некоего коммита? git merge-base первый второй Вернёт "первый", если он является предком второго. МОжет есть проще, не знаю. -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(6): В локалке шифрование тоже не помешает. Популяция ангелов в локалке очень малочисленна. -- mrkooll in community@ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:49 ` Andrey Rahmatullin @ 2010-08-24 9:58 ` Dmitry V. Levin 2010-08-24 18:00 ` Денис Смирнов 2010-08-24 17:58 ` Денис Смирнов 1 sibling, 1 reply; 23+ messages in thread From: Dmitry V. Levin @ 2010-08-24 9:58 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 467 bytes --] On Tue, Aug 24, 2010 at 03:49:07PM +0600, Andrey Rahmatullin wrote: > On Tue, Aug 24, 2010 at 01:42:47PM +0400, Денис Смирнов wrote: > > А есть ли какой то способ зная id коммита определить есть ли он в истории > > некоего коммита? > git merge-base первый второй > Вернёт "первый", если он является предком второго. МОжет есть проще, не > знаю. http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=blob;f=gb-task-check-girar#l13 -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:58 ` Dmitry V. Levin @ 2010-08-24 18:00 ` Денис Смирнов 2010-08-24 20:18 ` Sergey Vlasov 0 siblings, 1 reply; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 18:00 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 489 bytes --] On Tue, Aug 24, 2010 at 01:58:26PM +0400, Dmitry V. Levin wrote: >> git merge-base первый второй >> Вернёт "первый", если он является предком второго. МОжет есть проще, не >> знаю. DVL> http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=blob;f=gb-task-check-girar#l13 А чем это лучше git merge-base (при том что он код возврата дает)? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 18:00 ` Денис Смирнов @ 2010-08-24 20:18 ` Sergey Vlasov 2010-08-24 23:56 ` Dmitry V. Levin 0 siblings, 1 reply; 23+ messages in thread From: Sergey Vlasov @ 2010-08-24 20:18 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 768 bytes --] On Tue, Aug 24, 2010 at 10:00:17PM +0400, Денис Смирнов wrote: > On Tue, Aug 24, 2010 at 01:58:26PM +0400, Dmitry V. Levin wrote: > > >> git merge-base первый второй > >> Вернёт "первый", если он является предком второго. МОжет есть проще, не > >> знаю. > DVL> http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=blob;f=gb-task-check-girar#l13 > > А чем это лучше git merge-base (при том что он код возврата дает)? http://git.altlinux.org/people/ldv/packages/?p=gear.git;a=commitdiff;h=705d10e6596636220f65aa9c05f41a1ca69503de Ну и, насколько я помню, в merge-all-branches из kernel-build-tools аналогичный способ (точнее, через git rev-list --max-count=1) в каких-то ситуациях работал существенно быстрее, чем через git merge-base. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 20:18 ` Sergey Vlasov @ 2010-08-24 23:56 ` Dmitry V. Levin 0 siblings, 0 replies; 23+ messages in thread From: Dmitry V. Levin @ 2010-08-24 23:56 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1844 bytes --] On Wed, Aug 25, 2010 at 12:18:02AM +0400, Sergey Vlasov wrote: > On Tue, Aug 24, 2010 at 10:00:17PM +0400, Денис Смирнов wrote: > > On Tue, Aug 24, 2010 at 01:58:26PM +0400, Dmitry V. Levin wrote: > > > > >> git merge-base первый второй > > >> Вернёт "первый", если он является предком второго. МОжет есть проще, не > > >> знаю. > > DVL> http://git.altlinux.org/people/ldv/packages/?p=girar-builder.git;a=blob;f=gb-task-check-girar#l13 > > > > А чем это лучше git merge-base (при том что он код возврата дает)? > > http://git.altlinux.org/people/ldv/packages/?p=gear.git;a=commitdiff;h=705d10e6596636220f65aa9c05f41a1ca69503de Там, кстати, в commit message вкралась опечатка, меняющая смысл. > Ну и, насколько я помню, в merge-all-branches из kernel-build-tools > аналогичный способ (точнее, через git rev-list --max-count=1) в > каких-то ситуациях работал существенно быстрее, чем через git > merge-base. Да, я это тоже заметил. Например, у меня в coreutils.git это выглядит так: $ time git rev-list --max-count=1 ^master coreutils-current 0.00user 0.00system 0:00.00elapsed 160%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+494minor)pagefaults 0swaps $ time git log -n1 --pretty=format:1 ^master coreutils-current > /dev/null 0.00user 0.00system 0:00.00elapsed 160%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+500minor)pagefaults 0swaps $ time git merge-base coreutils-current master 1d10eb8b1eeff9dd0fe1bbbc212e9535203acff0 0.71user 0.01system 0:00.72elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+9166minor)pagefaults 0swaps Судя по статистике minor pagefaults, git rev-list --max-count=1 немного дешевле чем git log -n1 --pretty=format:1, и любой из них существенно дешевле и гораздо быстрее чем git merge-base. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:49 ` Andrey Rahmatullin 2010-08-24 9:58 ` Dmitry V. Levin @ 2010-08-24 17:58 ` Денис Смирнов 2010-08-24 18:54 ` Sergey Vlasov 1 sibling, 1 reply; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 17:58 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 759 bytes --] On Tue, Aug 24, 2010 at 03:49:07PM +0600, Andrey Rahmatullin wrote: AR> git merge-base первый второй AR> Вернёт "первый", если он является предком второго. МОжет есть проще, не AR> знаю. 70ms для репо с >8k коммитов лежащем в дисковом кэше. Да еще и код ошибки возвращает (0 -- если нашел, 1 -- если объект есть но в другом бранче, 128+матюк об ошибке -- если такого объекта нет в репо). Проще уже разве что со встроенным телепатическим модулем. Спасибо! Для того чтобы найти "корень" (первый коммит) бранча что-нибудь проще чем: git log --oneline --first-parent --abbrev=40 <branch> | tail -1 существует? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 17:58 ` Денис Смирнов @ 2010-08-24 18:54 ` Sergey Vlasov 2010-08-25 20:35 ` Денис Смирнов 0 siblings, 1 reply; 23+ messages in thread From: Sergey Vlasov @ 2010-08-24 18:54 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 484 bytes --] On Tue, Aug 24, 2010 at 09:58:25PM +0400, Денис Смирнов wrote: > Для того чтобы найти "корень" (первый коммит) бранча что-нибудь проще чем: > > git log --oneline --first-parent --abbrev=40 <branch> | tail -1 > > существует? В общем случае таких корней может быть несколько (git позволяет объединять независимо начатые ветки). Найти их можно, например, так: git log --pretty=tformat:'%H:%P' | sed -ne 's/:$//p' Например, в репозитории самого git таких коммитов 6. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 18:54 ` Sergey Vlasov @ 2010-08-25 20:35 ` Денис Смирнов 2010-08-26 11:51 ` Sergey Vlasov 0 siblings, 1 reply; 23+ messages in thread From: Денис Смирнов @ 2010-08-25 20:35 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 640 bytes --] On Tue, Aug 24, 2010 at 10:54:48PM +0400, Sergey Vlasov wrote: SV> В общем случае таких корней может быть несколько (git позволяет SV> объединять независимо начатые ветки). Найти их можно, например, так: SV> SV> git log --pretty=tformat:'%H:%P' | sed -ne 's/:$//p' SV> SV> Например, в репозитории самого git таких коммитов 6. Спасибо! А для того чтобы запросить корни от нескольких веток -- это решение правильно отработает опцию --all для git log, или надо опрашивать каждую ветку отдельно? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-25 20:35 ` Денис Смирнов @ 2010-08-26 11:51 ` Sergey Vlasov 0 siblings, 0 replies; 23+ messages in thread From: Sergey Vlasov @ 2010-08-26 11:51 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 865 bytes --] On Thu, Aug 26, 2010 at 12:35:49AM +0400, Денис Смирнов wrote: > On Tue, Aug 24, 2010 at 10:54:48PM +0400, Sergey Vlasov wrote: > > SV> В общем случае таких корней может быть несколько (git позволяет > SV> объединять независимо начатые ветки). Найти их можно, например, так: > SV> > SV> git log --pretty=tformat:'%H:%P' | sed -ne 's/:$//p' > SV> > SV> Например, в репозитории самого git таких коммитов 6. > > Спасибо! > А для того чтобы запросить корни от нескольких веток -- это решение > правильно отработает опцию --all для git log, или надо опрашивать каждую > ветку отдельно? Должно работать и с --all (правда, в результате окажутся смешанными и действительно независимые ветки, которые могли быть в репозитории). Есть ещё один вариант реализации (хотя скорость примерно одинаковая): git rev-list --parents --all | grep -v ' ' [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 8:31 [devel] git -- хитрая задачка Денис Смирнов 2010-08-24 9:17 ` Андрей Черепанов 2010-08-24 9:39 ` Alexander Myltsev @ 2010-08-24 9:53 ` Dmitry V. Levin 2010-08-24 11:35 ` Денис Смирнов 2 siblings, 1 reply; 23+ messages in thread From: Dmitry V. Levin @ 2010-08-24 9:53 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 1096 bytes --] On Tue, Aug 24, 2010 at 12:31:38PM +0400, Денис Смирнов wrote: > Имеется множество git-репозиториев (около тысячи). > Большая часть их них -- устаревшие backup'ы, но какие определить > по имени или еще каким-либо очевидным характеристикам невозможно. > Разобраться в этом кошмаре вручную -- тем более. > > Задача -- выявить и удалить старье (которого там процентов 90). > > Лобовое решение: прогнать для каждого бранча каждого репозитория git log, > положить результат в sqlite (commit id/путь к репо/бранч). Также положить > в базу последний commit id каждого бранча каждого репозитория. > > После этого я могу легко определить есть ли такой commit id в другом > репозитории. И если есть, и это не последний коммит в бранче -- то наш > бранч явно стухший и его можно удалить. Самый лобовой способ: зафетчить в каждый репозиторий соответствующий ему "другой", апстримный репозиторий, после чего пройтись git for-each-ref'ом по refs/heads и выяснить (git log -n1 --pretty=format:1 ^l_ref r_ref), есть ли в репозитории хотя бы один актуальный локальный бранч. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 9:53 ` Dmitry V. Levin @ 2010-08-24 11:35 ` Денис Смирнов 2010-08-24 11:41 ` Alexander Myltsev ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 11:35 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 754 bytes --] On Tue, Aug 24, 2010 at 01:53:49PM +0400, Dmitry V. Levin wrote: DVL> Самый лобовой способ: зафетчить в каждый репозиторий соответствующий ему DVL> "другой", апстримный репозиторий, после чего пройтись git for-each-ref'ом DVL> по refs/heads и выяснить (git log -n1 --pretty=format:1 ^l_ref r_ref), DVL> есть ли в репозитории хотя бы один актуальный локальный бранч. Хотелось бы во время всех этих проверок не модифицировать сами репозитории. Хотя можно, конечно, копии делать... А есть способ просто ответить на вопрос "есть ли в этом репозитории коммит с таким-то id, и если есть, то в истории каких бранчей"? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 11:35 ` Денис Смирнов @ 2010-08-24 11:41 ` Alexander Myltsev 2010-08-24 17:48 ` Денис Смирнов 2010-08-24 11:43 ` Andrey Rahmatullin 2010-08-24 11:52 ` Ildar Mulyukov 2 siblings, 1 reply; 23+ messages in thread From: Alexander Myltsev @ 2010-08-24 11:41 UTC (permalink / raw) To: ALT Linux Team development discussions 2010/8/24 Денис Смирнов <mithraen@altlinux.ru>: > А есть способ просто ответить на вопрос "есть ли в этом репозитории коммит > с таким-то id, Конечно, коммит -- это просто такой объект. git show его. > и если есть, то в истории каких бранчей"? А вот чтобы найти его в истории бранча, надо спускаться к нему от верхушки. -- AVM ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 11:41 ` Alexander Myltsev @ 2010-08-24 17:48 ` Денис Смирнов 0 siblings, 0 replies; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 17:48 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 429 bytes --] On Tue, Aug 24, 2010 at 03:41:13PM +0400, Alexander Myltsev wrote: AM> Конечно, коммит -- это просто такой объект. git show его. Спасибо. AM> А вот чтобы найти его в истории бранча, надо спускаться к нему от верхушки. т.е: git log --oneline --abbrev=40 <branch> | grep ^commit-id ? -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 11:35 ` Денис Смирнов 2010-08-24 11:41 ` Alexander Myltsev @ 2010-08-24 11:43 ` Andrey Rahmatullin 2010-08-24 11:45 ` Денис Смирнов 2010-08-24 11:52 ` Ildar Mulyukov 2 siblings, 1 reply; 23+ messages in thread From: Andrey Rahmatullin @ 2010-08-24 11:43 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 432 bytes --] On Tue, Aug 24, 2010 at 03:35:10PM +0400, Денис Смирнов wrote: > А есть способ просто ответить на вопрос "есть ли в этом репозитории коммит > с таким-то id, и если есть, то в истории каких бранчей"? git branch --contains -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(6): Боюсь, статическая сборка объявлена ересью, и каждый, кто пытается делать ее, будет подвержен анафеме. -- morozov in sisyphus@ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 11:43 ` Andrey Rahmatullin @ 2010-08-24 11:45 ` Денис Смирнов 0 siblings, 0 replies; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 11:45 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 238 bytes --] On Tue, Aug 24, 2010 at 05:43:04PM +0600, Andrey Rahmatullin wrote: AR> git branch --contains Спасибо! -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 11:35 ` Денис Смирнов 2010-08-24 11:41 ` Alexander Myltsev 2010-08-24 11:43 ` Andrey Rahmatullin @ 2010-08-24 11:52 ` Ildar Mulyukov 2010-08-24 17:46 ` Денис Смирнов 2 siblings, 1 reply; 23+ messages in thread From: Ildar Mulyukov @ 2010-08-24 11:52 UTC (permalink / raw) To: devel On 24.08.2010 17:35:10, Денис Смирнов wrote: > On Tue, Aug 24, 2010 at 01:53:49PM +0400, Dmitry V. Levin wrote: > > DVL> Самый лобовой способ: зафетчить в каждый репозиторий > соответствующий ему > DVL> "другой", апстримный репозиторий, после чего пройтись git > for-each-ref'ом > DVL> по refs/heads и выяснить (git log -n1 --pretty=format:1 ^l_ref > r_ref), > DVL> есть ли в репозитории хотя бы один актуальный локальный бранч. > > Хотелось бы во время всех этих проверок не модифицировать сами > репозитории. Хотя можно, конечно, копии делать... есть замечательная вещь - git new-workdir. Как раз оно. Лежит в git-contrib. -- Ildar ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] git -- хитрая задачка 2010-08-24 11:52 ` Ildar Mulyukov @ 2010-08-24 17:46 ` Денис Смирнов 0 siblings, 0 replies; 23+ messages in thread From: Денис Смирнов @ 2010-08-24 17:46 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 506 bytes --] On Tue, Aug 24, 2010 at 05:52:26PM +0600, Ildar Mulyukov wrote: IM> есть замечательная вещь - git new-workdir. Как раз оно. Лежит в IM> git-contrib. При любой модификации копии репозитория будет модифицирован оригинал. Ибо new-workdir просто делает симлинки на все подряд, кроме HEAD и index. В принципе можно использовать git clone -s --bare -- это будет быстро. -- С уважением, Денис http://mithraen.ru/ ---------------------------------------------------------------------------- [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2010-08-26 11:51 UTC | newest] Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-08-24 8:31 [devel] git -- хитрая задачка Денис Смирнов 2010-08-24 9:17 ` Андрей Черепанов 2010-08-24 9:40 ` Денис Смирнов 2010-08-24 9:39 ` Alexander Myltsev 2010-08-24 9:42 ` Денис Смирнов 2010-08-24 9:47 ` Alexander Myltsev 2010-08-24 9:49 ` Andrey Rahmatullin 2010-08-24 9:58 ` Dmitry V. Levin 2010-08-24 18:00 ` Денис Смирнов 2010-08-24 20:18 ` Sergey Vlasov 2010-08-24 23:56 ` Dmitry V. Levin 2010-08-24 17:58 ` Денис Смирнов 2010-08-24 18:54 ` Sergey Vlasov 2010-08-25 20:35 ` Денис Смирнов 2010-08-26 11:51 ` Sergey Vlasov 2010-08-24 9:53 ` Dmitry V. Levin 2010-08-24 11:35 ` Денис Смирнов 2010-08-24 11:41 ` Alexander Myltsev 2010-08-24 17:48 ` Денис Смирнов 2010-08-24 11:43 ` Andrey Rahmatullin 2010-08-24 11:45 ` Денис Смирнов 2010-08-24 11:52 ` Ildar Mulyukov 2010-08-24 17:46 ` Денис Смирнов
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