我的Server应用程序是使用C#编写的,并使用ASP.NET Server存储过程。
我使用Git进行代码源代码控制,每次部署时,我都会创建一个标记来定义所部署的版本。
例如:tag1_2021_07_29_11_00,tag2_2021_07_30_09_01...而标签将是我部署的时间,这次部署可以随机。
我需要运行的存储过程是两个标记之间的列表文件:
tag2_2021_07_30_09_01和tag1_2021_07_29_11_00。
(示例sp1.sql、sp2.sql、sp3.sql我将在SQL Server Management Studio中运行它)
为了节省时间,我想用cmd自动部署。
我成功地创建了cmd命令来构建和导出部署web源代码,但我不知道如何将tag1和tag2之间的.sql文件导出到一个文件夹中。
请注意,当我显示TortoiseGit并选择我的列表git log存储过程文件sp1.sql,sp2.sql...时,我看到git log有一个函数"export this version..“。
有没有人可以帮我用cmd导出列表存储?
这是我的cmd build命令,我需要和一些cmd行来导出list SQL,以便与我的源码一起压缩(到deploy_PROD_%datetime%.7z中):
@echo off
for /f %%a in ('powershell -Command "Get-Date -format yyyy.MM.dd__HH.mm"') do set datetime=%%a
del /s /q "D:\botdeploy\*"
cd /D D:\Source & git checkout PROD & git pull & git tag PROD_deploy_%datetime% & git push --tags
cd /D "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Msbuild" D:\Source\CRM.csproj /t:Restore,Rebuild /p:outdir="D:\botdeploy\\" /p:Configuration=Release & del /q "D:\botdeploy\_PublishedWebsites\CRM\Web.config" & "C:\Program Files\7-Zip\7z" a -t7z C:\Users\Nam\Desktop\deploy_PROD_%datetime%.7z D:\botdeploy\_PublishedWebsites\CRM\*
pause发布于 2021-07-29 07:07:21
如果要列出在两个标记之间添加/修改(但不删除)的文件,请参见,as in here
git diff --name-only --relative --diff-filter=AM tag1 tag2 > list一旦你有了一个文件列表,你就可以在一个专用的克隆存储库中使用它,在那里你只需要can sparse checkout你想要的文件(使用git sparse-checkout):
git clone --filter=blob:none --no-checkout --branch tag2 /url/remote/repo
cd repo
git sparse-checkout init
# for each file in list
git sparse-checkout add <aFile>
git read-tree -mu HEAD最后,您可以对该存储库执行git archive操作,以便以正确的版本(tag2,最新版本)获得仅包含所需文件的归档文件。
https://stackoverflow.com/questions/68571145
复制相似问题