-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge via intermediate branch #72
Conversation
In our realities, we often cannot afford direct merge (and push) to the target branch because of Branch Protection Rules. The new option instructs merge to create an intermediate branch on <local> before the actual merge with <remote>.
@@ -29,7 +29,8 @@ xcodebuild_cmd() { | |||
# these headers are unwanted and may cause module import conflicts | |||
unset USER_HEADER_SEARCH_PATHS | |||
unset HEADER_SEARCH_PATHS | |||
xcodebuild -target system7 -configuration Release DSTROOT="$HOME" clean install |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Xcode писал при сборке страшное сообщение warning: Refusing to delete /Users/<user>
. Не хотелось бы чтобы у него когда-то это получилось 🙈
NSString *stdOutOutput = nil; | ||
const int exitStatus = [self runGitCommand:[NSString stringWithFormat:@"merge-base %@ %@", possibleAncestor, possibleDescendant] | ||
stdOutOutput:&stdOutOutput | ||
const int exitStatus = [self runGitCommand:[NSString stringWithFormat:@"merge-base --is-ancestor %@ %@", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Воспользовался более современным ключем --is-ancestor
. Меньше кода 🤷♂️
(на самом деле я пытался еще одну штуку улучшить, но там меня посетил облом, а это осталось)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Це перемога 🥳
Озвучу тут просто свои мысли, которые возникли при просмотре ПР. Environment Variable выглядит немного странно. У нас в s7 уже есть замена команде статус, вернее расширение. Возможно можно было сделать альтернативную команду и для мерджации, в параметрах которой будет промежуточная ветка. Но не уверен что это решение лучше чем то что тут сделано
По поводу отдельной команды есть сомнения.
У меня была еще мысль в процессе мержа каждый раз спрашивать,– "а не желаете ли промежуточную ветку?". Такой подход при большом мерже будет доставлять боль человеку, плюс автоматизировать это скриптами будет сложно, и мы все равно заведем environment variable. |
Интерактивные вопросы при мерже разосшедшихся ревизий в сабрепах вдохновлялись HG.
В наших современных реалиях чаще всего не имеем права мержить (а главное пушить) напрямую в таргет ветку.
Завел переменную окружения, которую будет читать мерж драйвер, и если она есть, то перед мержем будет создаваться промежуточная мерж-ветка.
Например:
Кроме собственно этой фичи в этом ПР два маленьких фикса. Будут описаны по дифу.