ΠΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΄Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ 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.