Я опоздал, но я хочу рассказать библиотеке, с которой я закончил.
RxPermission - лучшая библиотека с реактивным кодом, что делает код разрешений неожиданным только 1 строкой.
RxPermissions rxPermissions = new RxPermissions(this);
rxPermissions
.request(Manifest.permission.CAMERA,
Manifest.permission.READ_PHONE_STATE)
.subscribe(granted -> {
if (granted) {
// All requested permissions are granted
} else {
// At least one permission is denied
}
});
добавить в свой build.gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.tbruyelle:rxpermissions:0.10.1'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
}
Я не знаком с C# или Разработчиком Windows Form, но рассмотрением приблизительно designer.cs
файлы, я мог найти онлайн, что у них нет особенно сложной структуры.
, Какие части его перестраиваются? Я предполагаю, что это - главным образом порядок свойств в InitializeComponent()
метод, это смешано?
, Если это так, Вы смогли писать простой сценарий, который переупорядочивает те строки в алфавитном порядке, скажите (особенно, если Вы никогда не редактируете эти файлы вручную так или иначе), и использование, что как сценарий рычага перед фиксацией в Подверсии.
Гм, право... царапает это. Большое красное поле у основания того раздела говорит, что Вы, как предполагается, не изменяете транзакции в сценариях рычага. Но Вы смогли находить другой способ запустить тот скрипт где-нибудь между designer.cs
изменяемый файл и это фиксировавший.
На самом деле, учитывая комментарий scraimer к этому:
Общий взлом, но в худшем случае, незадолго до слияния, я мог отсортировать ОБА файла и сделать слияние просто линию за линией дело...
Разве Вы не можете позволить Подверсии установить внешнюю программу слияния? Я использовал KDiff3, который может выполнять команду препроцессора прежде, чем сделать diffs или слияния , таким образом, Вы могли автоматизировать тот процесс.
Вот некоторые вещи попробовать:
Hope, которая помогает.
Я вполне уверен нет никакой серебряной пули для этой проблемы, поскольку разработчик топает на всем протяжении designer.cs.
Все, что я могу предложить, должно минимизировать использование разработчика. Лично я только сцепляюсь с событиями в коде и только использую разработчика только для инициализации и расположения. Как таковой не слишком трудно понять различия в changeset ("о, кто-то добавил кнопку", "о, кто-то изменился, как это смотрит немного").
Единственным путем я знаю об истинно избежать этой проблемы, когда использование системы управления источника стилей слияния, такой как подверсия должно вручить коду формы и не использовать разработчика. Очевидно, это не было бы хорошо, потому что рука, кодирующая эти формы, может требовать времени.
причина, это происходит, состоит в том, потому что свойства элементов управления сериализируются разработчиком в порядке, они отбрасываются на форме. Вырезание и вставление может произвести этот порядок, а также перемещение управления так, чтобы это имело нового родителя (такого как углубление управления к панели, когда это было ранее непосредственно на форме).
я имел эту проблему на крупном проекте и имел к imploy довольно ужасный подход - разность designer.cs файлы против целевого пересмотра регистрации, и вручную объедините их использующий инструмент слияния. Это не идеально, но это - единственный способ, которым я последовательно вижу эту работу с svn или другим инструментом управления источником стилей слияния.
другая опция состояла бы в том, чтобы использовать подход блокировки с управлением исходным кодом, как другие указали, но это идет с неприятными побочными эффектами также.