Это то, что вы хотите?
Select * from
(
select a.* from tbl a join tbl b
on a.ID = b.ID
where
a.Type = 'Name' and b.Type = 'Text'
) tb
where tb.Type = 'Name'
Попробуйте настроить ui.merge. См. эту страницу для более подробной информации.
Я передал вопрос #mercurial
на irc.freenode.net пару дней назад. mpm
(автор Mercurial) дал своего рода ответ (это была только половина ответа, поэтому я не сразу передал его здесь). Он сказал, что можно сделать что-то, где вы позволите Mercurial автоматически объединить файлы (и вставить маркеры слияния <<<<
и >>>>
, где есть конфликты) .
Затем используйте инструмент слияния, который знает об этих маркерах: это позволит вам разрешить их все сразу, вместо того, чтобы делать это для каждого файла отдельно. Отправной точкой может быть страница конфигурации инструмента слияния . Он объясняет, что
[ui] merge = internal:merge
заставит Mercurial вставить маркеры слияния. Здесь я протестировал это, сделав два файла x. txt
и y.txt
, которые я затем модифицировал с конфликтующими изменениями в двух клонах. Слияние просто дало:
% hg merge merging x.txt warning: conflicts during merge. merging x.txt failed! merging y.txt warning: conflicts during merge. merging y.txt failed! 0 files updated, 0 files merged, 0 files removed, 2 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
Все файлы были обработаны за один раз, мне не нужно было ничего подтверждать для каждого файла, как вы описываете.
Теперь файлы содержат такие маркеры слияния:
% cat x.txt
foo
<<<<<<< local
hehe
=======
foobar
>>>>>>> other
Следующий шаг - найти инструмент, который может взять дерево каталогов с такими файлами и разрешить их. Я посмотрел на kdiff3, но не понял, как использовать его для работы только с одним файлом, похоже, он очень сосредоточен на сравнении пар файлов / каталогов.
Я не уверен, насколько этот полуответ помогает вам - - может, вы тоже застряли на этом месте? Но я надеюсь, что это поможет другим, кто хочет, чтобы маркеры слияния вставлялись во все файлы, а затем разрешали конфликты вручную.
txt , который я затем модифицировал, добавив конфликтующие изменения в двух клонах. Слияние просто дало:% hg merge merging x.txt warning: conflicts during merge. merging x.txt failed! merging y.txt warning: conflicts during merge. merging y.txt failed! 0 files updated, 0 files merged, 0 files removed, 2 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
Все файлы были обработаны за один раз, мне не нужно было ничего подтверждать для каждого файла, как вы описываете.
Теперь файлы содержат такие маркеры слияния:
% cat x.txt
foo
<<<<<<< local
hehe
=======
foobar
>>>>>>> other
Следующий шаг - найти инструмент, который может взять дерево каталогов с такими файлами и разрешить их. Я посмотрел на kdiff3, но не понял, как использовать его для работы только с одним файлом, похоже, он очень сосредоточен на сравнении пар файлов / каталогов.
Я не уверен, насколько этот полуответ помогает вам - - может, вы тоже застряли на этом месте? Но я надеюсь, что это поможет другим, кто хочет, чтобы маркеры слияния вставлялись во все файлы, а затем разрешали конфликты вручную.
txt , который я затем модифицировал, добавив конфликтующие изменения в двух клонах. Слияние просто дало:% hg merge merging x.txt warning: conflicts during merge. merging x.txt failed! merging y.txt warning: conflicts during merge. merging y.txt failed! 0 files updated, 0 files merged, 0 files removed, 2 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
Все файлы были обработаны за один раз, мне не нужно было ничего подтверждать для каждого файла, как вы описываете.
Теперь файлы содержат такие маркеры слияния:
% cat x.txt
foo
<<<<<<< local
hehe
=======
foobar
>>>>>>> other
Следующий шаг - найти инструмент, который может взять дерево каталогов с такими файлами и разрешить их. Я посмотрел на kdiff3, но не понял, как использовать его для работы только с одним файлом, похоже, он очень сосредоточен на сравнении пар файлов / каталогов.
Я не уверен, насколько этот полуответ помогает вам - - может, вы тоже застряли на этом месте? Но я надеюсь, что это поможет другим, кто хочет, чтобы маркеры слияния вставлялись во все файлы, а затем разрешали конфликты вручную.
Мне не нужно было ничего подтверждать для каждого файла, как вы описываете.Теперь файлы содержат такие маркеры слияния:
% cat x.txt
foo
<<<<<<< local
hehe
=======
foobar
>>>>>>> other
Следующим шагом является поиск инструмента, который может взять дерево каталогов с такими файлами и позволить вам разрешить их . Я посмотрел на kdiff3, но не понял, как использовать его для работы только с одним файлом, похоже, он очень сосредоточен на сравнении пар файлов / каталогов.
Я не уверен, насколько этот полуответ помогает вам - - может, вы тоже застряли на этом месте? Но я надеюсь, что это поможет другим, кто хочет, чтобы маркеры слияния вставлялись во все файлы, а затем разрешали конфликты вручную.
Мне не нужно было ничего подтверждать для каждого файла, как вы описываете.Теперь файлы содержат такие маркеры слияния:
% cat x.txt
foo
<<<<<<< local
hehe
=======
foobar
>>>>>>> other
Следующим шагом является поиск инструмента, который может взять дерево каталогов с такими файлами и позволить вам разрешить их . Я посмотрел на kdiff3, но не понял, как использовать его для работы только с одним файлом, похоже, он очень сосредоточен на сравнении пар файлов / каталогов.
Я не уверен, насколько этот полуответ помогает вам - - может, вы тоже застряли на этом месте? Но я надеюсь, что это поможет другим, кто хочет, чтобы маркеры слияния вставлялись во все файлы, а затем разрешали конфликты вручную.
но не понял, как использовать его для работы только с одним файлом, похоже, он очень сосредоточен на сравнении пар файлов / каталогов.Я не уверен, насколько этот полуответ помогает вам - возможно, вы также получили застрял в этом месте? Но я надеюсь, что это поможет другим, кто хочет, чтобы маркеры слияния вставлялись во все файлы, а затем разрешали конфликты вручную.
но не понял, как использовать его для работы только с одним файлом, похоже, он очень сосредоточен на сравнении пар файлов / каталогов.Я не уверен, насколько этот полуответ помогает вам - возможно, вы также получили застрял в этом месте? Но я надеюсь, что это поможет другим, кто хочет, чтобы маркеры слияния вставлялись во все файлы, а затем разрешали конфликты вручную.
звучит так, будто вам нужна команда extdiff
:
у меня они есть в моем ~ / .hgrc (я предпочитаю meld, но вы можете изменить его на kdiff3 и т. Д. )
[extensions]
hgext.extdiff =
[extdiff]
# add new command called meld, runs meld (no need to name twice)
cmd.meld =
С extdiff
ваши слияния происходят в вашем рабочем каталоге, и, кроме того, вы можете передать любые дополнительные параметры вашей программе сравнения с помощью -o:
$ hg help extdiff
hg extdiff [OPT] ... [FILE] ...
использовать внешнюю программу для сравнения репозиторий (или выбранные файлы)
Показать различия между ревизиями для указанных файлов, используя внешняя программа. По умолчанию используется программа diff с параметры по умолчанию "-Npru". Чтобы выбрать другую программу, используйте параметр -p. Программа будут переданы имена двух каталогов для сравнения. Пройти дополнительные параметры программы, используйте параметр -o. Эти будут перед именами каталогов для сравнения. Когда даны два аргумента ревизии, то изменения показано между этими версиями. Если только одна ревизия указано, что ревизия сравнивается с рабочей каталог, а если ревизии не указаны, файлы рабочего каталога сравниваются с его родительским.
параметры:
-p - программа сравнения программ для запуска
-o --option передать параметр программе сравнения
-r --rev редакция
-I --include включить имена, соответствующие заданным шаблонам
-X --exclude исключить имена, соответствующие заданным шаблонам
Я придумал решение, которое дает то, что я хочу, но Я до сих пор чувствую, что это лажа.
hg update [Мое мнение здесь]
hg --config "ui.merge=internal:fail" merge
See https://www.mercurial-scm.org/wiki/TipsAndTricks#head-9f405488b6d3b3d092a09aafa28db515ba44c742 for how-to merge/fail details.
Now I've got a working dir with as much as auto could figure out, but any outstanding files still untouched from Mine. (Use hg resolve -l to see the Mercurial's resolution status of current files)
hg vdiff -r [Theirs head's rev here]
Note: If you're using WinMerge for your vdiffs , then make sure it has an /r switch as an option which will do a subdirectory compare and - if WinMerge config is set to use Tree-View - will give a great tree comparison. From Mercurial.ini:
[extdiff]
cmd.vdiff = C:\Program Files\WinMerge\WinMergeU.exe
opts.vdiff = /e /ub /r /dl other /dr local
Now I can work the entire directory which includes the unresolved files and make project wide changes as necessary (ie. maybe resolving one file requires additional changes in another).
hg resolve -m
Whew! Here's hoping this helps someone else!