Мерзавец переходит,-m имеют побочные эффекты для других разработчиков?

Во-первых, сгенерируйте действительный оператор T-SQL. У вас есть ошибки при использовании CREATE LOGIN и sp_executesql .

ownerpass = "abcdef"
owner = "yrdy"
sql_login = (
    "DECLARE @sql AS NVARCHAR(MAX);"
    "DECLARE @Databaseowner sysname = ?;"
    "DECLARE @Databaseownerpass sysname = ?;"
    "SET @sql = 
        N'if not exists (select * from sys.sql_logins where name = @Databaseowner )'  + 
        N' CREATE LOGIN ' + QUOTENAME(@Databaseowner) + 
        N' WITH PASSWORD = ' + QUOTENAME(@Databaseownerpass, '''') + N';';"
    "EXEC sp_executesql @sql, N'@Databaseowner sysname, @Databaseownerpass sysname', @Databaseowner, @Databaseownerpass;"
)   

Затем, если вы используете ? в качестве заполнителя, выполните ваш скрипт следующим образом:

cursor.execute(sql_login, (owner, ownerpass))

7
задан Community 23 May 2017 в 11:53
поделиться

2 ответа

Я не абсолютно уверен, на что Ваш repo похож, но здесь является худшим вариантом.

Предположим Ваш origin репозиторий похож на это

origin:
o---o---A---B---C  master

И Ваш локальный репозиторий похож на это,

JimPuls:
o---o---A---B---C  master, origin/master
         \
          D---E---F topic1

Затем после того, как Ваше ответвление переименовывает Ваш локальный репозиторий, похож на это:

JimPuls:
o---o---A---B---C  old_master, origin/master
         \
          D---E---F master

Теперь, когда Вы продвигаете master кому: origin это будет обновлением неускоренной перемотки вперед. После нажатия, origin репозиторий будет похож на это:

origin:
o---o---A...B...C  (B & C are orphaned commits)
         \
          D---E---F master

Это может быть жестоко Вашим друзьям, которые, возможно, сделали фиксации сверху C. Например, если Sally работала с Вами, ее репозиторий может быть похожим на это:

Sally:
o---o---A---B---C  origin/master
                 \
                  G---H---I master

Теперь, если Вы делаете Ваше нажатие неускоренной перемотки вперед и Sally делают a fetch ее репозиторий будет похож на это:

Sally:
          D---E---F  origin/master
         /
o---o---A---B---C  
                 \
                  G---H---I  master

Теперь Sally должна выяснить, как получить ее работу (G, H, I) назад в репозиторий. Если она просто делает слияние с origin/master затем изменения в B и C вернутся в репозитории (ой!). Вместо этого она будет иметь к cherry-pick или rebase ее ТОПЛЕНОЕ МАСЛО изменяется на origin/master.

Здорово, что Мерзавец позволяет Вам сделать это, но это - вид поиска неприятностей. Вы действительно надеетесь, что Sally замечает ситуацию. Поэтому необходимо предупредить всех других участников, когда Вы делаете это так, они могут иметь дело с изменением соответственно.

Примечание: вышеупомянутое является худшим вариантом. Если Ваш topic1 от ответвления отступают master в C затем, что изменение является ускоренной перемоткой вперед и нет никаких проблем.

7
ответ дан 7 December 2019 в 07:50
поделиться

В основном Ваши операции совпадают с:

# git checkout master
# git reset --hard topic1
# git push origin master

И они будут иметь точно что эффект: Все другие доберутся topic1 ответвление (это называют master для них, хотя) и его родословная до такой степени, когда master и topic1 сначала отличенный. Старое master ответвление затем лежит вокруг в их репозиториях и будет собрано "мусор" в какой-то момент в будущем, потому что ничто больше не указывает на него.

Если topic1 ответвление, которое произошло из тока HEAD из master Вы будете в порядке здесь. Иначе Вы войдете в “ситуацию с” истории перезаписи, которая может сделать путаницу Ваш, например, Ваши теги. Необходимо думать тщательно о том, чего Вы действительно пытаетесь достигнуть. Возможно, простое git merge будет служить Вам лучше?

0
ответ дан 7 December 2019 в 07:50
поделиться
Другие вопросы по тегам:

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