git для доступа к разрешенным ветвям

Если я правильно вас понимаю, space = "free_x" делает то, что вы хотите.

library(ggplot2)

ggplot(mydf, aes(X, Y)) + geom_point()+ 
facet_grid (.~ groups, scales = "free_x", space = "free_x")

enter image description here [/g0]

И если вам нужен тот же стиль маркировки на оси х:

ggplot(mydf, aes(X, Y)) + geom_point()+ 
 scale_x_continuous(breaks = seq(0,20,2)) +
 facet_grid (.~ groups, scales = "free_x", space = "free_x")

enter image description here [/g1]

1
задан Stack_IQ 13 July 2018 в 10:31
поделиться

2 ответа

Это непростая задача для решения задач с помощью клиентских ботов. В отличие от серверной стороны, где вы ожидаете, что каждая запись будет представлена ​​в виде полученного push, на стороне клиента существует множество способов взаимодействия пользователя с локальным репо. Я не знаю ни одного крючка, который поймал бы всех; и на самом деле, некоторые из них могут быть не пойманы никаким крючком вообще. (Я не могу придумать способ обнаружения локального reset или ускоренного слияния. Если ваш рабочий процесс таков, что разработчики обычно не будут делать эти вещи, конечно, это помогает.)

Как всегда крючки на стороне клиента - это только удобства для пользователей, которые решили использовать их. Это звучит так, как будто это подходит для вашего случая использования, хотя имейте в виду, что это означает, что для каждого клона необходимо настроить настройку, и это означает, что логика разрешений должна быть видимой (вероятно, реплицируется, как для простоты, так и для того, чтобы избежать возможности git работать независимо от центрального сервера) для каждого клона.

Итак, с чего бы вы начали?

Ну, pre-commit - самый низкий висящий плод. Типичный способ «случайно» обновить ref, вы его проверили, и вы commit; и первый момент времени, когда вы можете поймать это (и прервать его при желании) pre-commit. Вам нужно будет определить, какая ветка (если есть) будет обновлена ​​- я думаю, вы использовали бы .git/HEAD для этого.

2
ответ дан Mark Adelsberger 17 August 2018 в 13:08
поделиться
  • 1
    Марк, не будет ли в этом случае работать с предварительным нажатием? – Stack_IQ 13 July 2018 в 13:16
  • 2
    @Stack_IQ - Вы заявили, что нужно уловить проблему ранее и избежать повторной работы. pre-push ничего вам не скажет раньше, чем проверки на стороне сервера. – Mark Adelsberger 13 July 2018 в 13:24
  • 3
    @ Марк .. Спасибо за разъяснение! – Stack_IQ 16 July 2018 в 06:21

Как и Марк Адельсбергер (Mark Adelsberger), я думаю, вы хотите использовать pre-commit, чтобы поймать тот факт, что клиенты не находятся на правильной ветке как можно раньше.

Вот пример pre-commit скрипт, чтобы определить, защищена ли ветка или нет.

#!/bin/sh

# Generic function to verify if a word is part of a list of words (space-separated)
contains() {
    # 1 is the element to verify
    local element=$1
    shift
    # All other arguments are part of the list that may contain the element or not
    # so you don't need to quote the arg when calling this function
    local list="$@"

    case $list in
        $element                        |\
        $element[[:blank:]]*            |\
        *[[:blank:]]$element            |\
        *[[:blank:]]$element[[:blank:]]*)
            # The element is contained in the list
            return 0
            ;;
    esac
    # The element is not contained in the list
    return 1
}

# Space-separated list of branches that should not be committed on
protected_branches='devtool master'
current_branch=$(git rev-parse --abbrev-ref HEAD)

contains $current_branch $protected_branches
if [ $? -eq 0 ]; then
    echo The current branch $current_branch is protected! Create your own before committing.
    exit 1
fi

Чтобы решить проблему нажатия на крючки на стороне клиента, существует несколько SO-сообщений, связанных с этим, здесь один . Во всех случаях нет простого способа сделать это.

2
ответ дан summercycle 17 August 2018 в 13:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: