Skip to content

odbaev/SSMS-to-Git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ SSMS ΠΈ Git

Для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ряда дСйствий ΠΏΡ€ΠΈ использовании SSMS ΠΈ Git ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ Π½Π° основС Π²Π½Π΅ΡˆΠ½ΠΈΡ… инструмСнтов SSMS.

Установка

  • Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ bat-Ρ„Π°ΠΉΠ» ssms_to_git.bat Π² ΠΏΠ°ΠΏΠΊΡƒ рСпозитория, Π³Π΄Π΅ находятся ΠΏΠ°ΠΏΠΊΠΈ схСм Π‘Π” с sql-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² SSMS ΠΈ содСрТащими скрипты Ρ‚Π°ΠΊΠΈΡ… sql-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, прСдставлСния, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ дСйствия ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ (mode) Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта:

ДСйствиС Π Π΅ΠΆΠΈΠΌ
ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· SSMS Π² ΠΏΠ°ΠΏΠΊΡƒ рСпозитория Git copy
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² SSMS ΠΈ Git diff
БлияниС Ρ„Π°ΠΉΠ»ΠΎΠ² SSMS ΠΈ Git merge
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Git open
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Git explore

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ опрСдСлСния sql-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² скриптС Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ строка Π²ΠΈΠ΄Π°:

(CREATE|ALTER|CREATE OR ALTER) (PROCEDURE|PROC|FUNCTION|VIEW|TRIGGER) [schema].[name]

Для сравнСния ΠΈ слияния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° KDiff3 (Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ установлСна Π½Π° ПК).

Настройка

Для использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ дСйствиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ внСшний инструмСнт Π² SSMS Tools -> External Tools, Π³Π΄Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ:

  • Command - ΠΏΡƒΡ‚ΡŒ ΠΊ bat-Ρ„Π°ΠΉΠ»Ρƒ
  • Arguments - $(ItemPath) mode, Π³Π΄Π΅ mode - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта
  • Close on exit - Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки автоматичСски Π·Π°ΠΊΡ€Ρ‹Π²Π°Π»ΠΎΡΡŒ

Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ инструмСнт ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· мСню SSMS Tools -> НазваниС_инструмСнта ΠΈΠ»ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ сочСтаниС клавиш Π² SSMS Tools -> Options -> Environment -> Keyboard для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Tools.ExternalCommand1, Tools.ExternalCommand2 ΠΈ Ρ‚.Π΄.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ сцСнарии использования

  • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² SSMS ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Git Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ внСшнСго инструмСнта для копирования Ρ„Π°ΠΉΠ»Π° ΠΈΠ· SSMS Π² ΠΏΠ°ΠΏΠΊΡƒ рСпозитория Git.

  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° бою Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Для этого послС слияния Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ (master) Π²Π΅Ρ‚ΠΊΡƒ, Π΄ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ (push) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bash):

git diff origin/master master --name-only --diff-filter=AMR

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² SSMS Π½Π° бою ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ внСшний инструмСнт для сравнСния ΠΈΠ»ΠΈ слияния Ρ„Π°ΠΉΠ»ΠΎΠ² SSMS ΠΈ Git.

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» для Π½Π°ΠΊΠ°Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ внСшний инструмСнт для открытия Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Git.

About

SSMS integration with Git

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published