void f(String[] first, String[] second) {
String[] both = new String[first.length+second.length];
for(int i=0;i<first.length;i++)
both[i] = first[i];
for(int i=0;i<second.length;i++)
both[first.length + i] = second[i];
}
Этот работает без знания каких-либо других классов / библиотек и т. Д. Он работает для любого типа данных. Просто замените String
на что-нибудь вроде int
, double
или char
. Это работает довольно эффективно.
Перечитав раздел об именованной ветвящейся разработке в книге Mercurial, я ' Я пришел к выводу, что лично для меня лучше всего иметь отдельные общие репозитории, по одному для каждой ветви. У меня была бесплатная учетная запись на bitbucket.org, поэтому я пытался заставить себя использовать только один общий репозиторий, что и создало проблему.
Я укусил пулю и получил себе платную учетную запись, чтобы я мог сохранить отдельный общий репозиторий для моих стабильных выпусков.
Используйте hg push -f
, чтобы принудительно создать новую удаленную головку.
Причина, по которой push
не делает этого по умолчанию в том, что он пытается напомнить вам, что нужно вытащить и объединить, если вы забыли. Чего вы не хотите, так это:
Теперь ветка X в удаленном репозитории выглядит так:
--(100)--(101)
\
\---------(102)
Какую головку должен захватить новый разработчик, если они проверяют ветку? Кто знает.
Вы писали:
Я обнаружил, что Mercurial настаивает только на ОДНОЙ голове находясь в удаленном репозитории.
Как вы думаете, почему?
Из справки для hg push
:
По умолчанию push не запускается, если обнаруживает результат бы увеличить количество удаленных головок. Это обычно указывает на клиент забыл выполнить извлечение и слияние перед отправкой.
Если вы знаете, что намеренно создаете новый заголовок в удаленном репозитории, а это желательно, используйте флаг -f.
Я пришел из git, ожидая того же. Кажется, что это один из подходов к простому нажатию на верхнюю часть.
hg push -r tip