在这里,我们将给大家分享关于Windows预注册挂钩评论长度Subversion的知识,同时也会涉及到如何更有效地.net–在Windows上使用的Subversion服务器、AWSCLIversio
在这里,我们将给大家分享关于Windows预注册挂钩评论长度Subversion的知识,同时也会涉及到如何更有效地.net – 在Windows上使用的Subversion服务器、AWS CLI version 2 在 Windows 下的安装、CentOS 7中使用Subversion Edge安装Subversion服务器、django – 跟随Subversion存储库Trunk的最佳实践:Git(镜像),Git-Svn,Subversion?的内容。
本文目录一览:- Windows预注册挂钩评论长度Subversion
- .net – 在Windows上使用的Subversion服务器
- AWS CLI version 2 在 Windows 下的安装
- CentOS 7中使用Subversion Edge安装Subversion服务器
- django – 跟随Subversion存储库Trunk的最佳实践:Git(镜像),Git-Svn,Subversion?
Windows预注册挂钩评论长度Subversion
我似乎没有得到这个地方。 无论是在网上search脚本等。任何人都有一个脚本,你可以编辑在Windows环境中的开箱即用pre-commit.tmpl,需要input的字符在Tortoise Subversion的提交评论全球所有团队成员都是必需的,而这个要求是从SVN服务器推到客户端?
我不知道脚本语言,这应该是非常简单的事情,如果不花时间在接下来的3个小时里找出脚本,
这是一个.bat文件,要求有一个评论。 它检查注释中是否存在至少一个字符。
@echo off :: Stops commits that have empty log messages. @echo off setlocal rem Subversion sends through the path to the repository and transaction id set REPOS=%1 set TXN=%2 svnlook log %rEPOS% -t %TXN% | findstr . > nul if %errorlevel% gtr 0 (goto err) else exit 0 :err echo. 1>&2 echo Your commit has been blocked because you didn't enter a comment. 1>&2 echo Write a log message describing the changes made and try again. 1>&2 echo Thanks 1>&2 exit 1
该文件位于存储库的/ hooks文件夹中,名为pre-commit.bat。 如果您需要最少量的字符,则要修改的行是
svnlook log %rEPOS% -t %TXN% | findstr . > nul
所以如果你想要至少10个字符,你需要有10个字符而不是一个字符
svnlook log %rEPOS% -t %TXN% | findstr .......... > nul
findtr命令更高级的选项可以让你做更有趣的检查(特定的字符集等)
我使用SubversionNotify ,它可能比你需要的更多,但是设置起来很简单。
尝试这个 :
rem Make sure that the log message contains some text. set REPOS=%1 set TXN=%2 "C:Program FilesSubversionbinSVNlook.exe" log -t %TXN% %rEPOS% | FindStr [a-zA-Z0-9] IF %ERRORLEVEL% EQU 0 GOTO OK echo Your commit has been blocked because you didn't provide a log message 1>&2 echo Please write a log message describing the purpose of your changes and 1>&2 echo then try committing again. -- Thank you 1>&2 exit 1 :OK rem ------------------------------------------------------------- rem Check if comment is in list of reserved words to not be used.. rem ------------------------------------------------------------- "C:Program FilesSubversionbinSVNlook.exe" log -t %TXN% %rEPOS% >comment setlocal enabledelayedexpansion Set SEParaTOR= set COMMENT= for /f "delims=" %%a in (comment) do ( set currentline=%%a set COMMENT=!COMMENT!%sEParaTOR%!currentline! ) FIND "%COMMENT%" "C:Program FilesSubversionexcludedwords.txt">Null If %ERRORLEVEL% EQU 1 goto OK2 :Fail echo Your commit has been blocked because the single word comment you provided is not allowed 1>&2 echo Line is -%COMMENT%- 1>&2 echo Please write a proper log message describing the purpose of your changes and 1>&2 echo then try committing again. -- Thank you 1>&2 exit 1 :OK2 rem ------------------------------------------------------------- rem Check number of words on the line if = 2 then reject comment rem ------------------------------------------------------------- Set VAR1=%COMMENT% Set count=0 For %%j in (%VAR1%) Do Set /A count+=1 IF %count% EQU 2 goto Fail2 goto OK3 :Fail2 echo Your commit has been blocked because not enough detail supplied 1>&2 echo Please write a longer log message describing the purpose of your changes and 1>&2 echo then try committing again. -- Thank you 1>&2 exit 1 :OK3 rem ------------------------------------------------------------- rem Check that the author of this commit has the rights to perform rem ------------------------------------------------------------- rem the commit on the files and directories being modified. rem commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1 rem All checks passed,so allow the commit. exit 0
我有一个预先提交的钩子 ,可以做你想要的。 再加上更多。
您可以指定提交评论的最小长度。
您可以将提交注释与正则表达式匹配。 您不仅可以指定长度,还可以指定某些参数。 例如,提交注释是否包含您的缺陷跟踪系统使用的错误号,以便您可以追溯到特定缺陷的更改?
它也可以让你做到以下几点:
针对特定文件或目录设置各种提交权限:
读写 :用户可以签出并提交这些项目。
只读 :用户可以检出这个项目,但不能提交更改。
添加 :用户可以通过svn cp添加一个目录,但不提交任何更改。 这对于允许您创建标记的/tags目录是完美的,但不能修改标记。
不删除 :用户可以提交更改并添加新文件,但不能删除这些文件。
no-add :用户只能提交更改,不能在提交中添加或删除文件。
而且,它也允许你这样做:
通过globbing的正则表达式来禁止某些文件名,
要求某些文件或目录有一个特定的属性设置为一个特定的值。 对于确保Unix shell脚本,Unix Makefiles和Windows Batch文件有正确的行结束,或者svn:ignore被设置,所以用户不会意外地提交他们不应该提交的文件。
要求某些修订属性设置为一定的值。 这是你如何检查提交消息,但说svn:log必须匹配某些正则表达式。
这个预先提交的脚本是用Perl编写的。 默认情况下,Perl提供了Unix,Mac和Linux服务器。 不幸的是,它不包括在Windows电脑上。 幸运的是,有几个开源的,免费的,易于安装Perl的PC包,如ActivePerl和StrawBerry Perl
.net – 在Windows上使用的Subversion服务器
我想我将在客户端上使用TortoiseSVN,并将主要进行.NET开发.
更新:
很好的建议我根据投票选择我的答案.我会尝试VisualSVN和CollabNet.
请阅读我认为也很好的chyne答案(1).我也会尝试这个方法.
我会在一两周内回覆这个问题,在评论中提出我的想法.
另外如果您正在进行.NET开发,请查看AnkhSVN的Visual Studio集成.我有两个和乌龟SVN作为客户端安装.
AWS CLI version 2 在 Windows 下的安装
首先你需要到下面的链接地址中下载需要的应用:
https://awscli.amazonaws.com/AWSCLIV2.msi
双击运行
双击运行下载的可以运行的文件
下一步继续
下一步继续安装进程
许可协议
你需要同意许可协议后继续安装。
安装路径
你可以选择自定义安装路径,一般来说默认就可以了。
安装进程
在这里单击安装来进行安装。
安装进程
继续安装的进程。
完成安装
单击完成来完成安装。
校验安装
在 Cmd 命令下,输入
aws --version
如果你能够看到 aws 的版本的话,那就说明了CLI 工具已经安装完成了。
C:Usersyhu>aws --version
aws-cli/2.0.46 Python/3.7.7 Windows/10 exe/AMD64
C:Usersyhu>
上面的截图表示了安装已经完成了。
https://www.ossez.com/t/aws-cli-version-2-windows/473
CentOS 7中使用Subversion Edge安装Subversion服务器
前面的系列中介绍了如何使用Subversion和Apache安装包搭建Subversion服务器,整个安装过程的配置文件修改完全是手动修改。无论是SVN项目的添加,还是用户的添加,以及用户访问权限的设置,以及用户登录验证方式的修改,都必须登录到SVN服务器上修改对应的配置文件,效率非常低。而CollabNet提供的Subversion Edge大大简化了SVN服务器的安装,以及安装后的配置,本文主要介绍如何在CentOS 7上安装Subversion Edge以及使用Subversion Edge的GUI界面配置SVN服务器。
需要说明的是,Subversion Edge安装的SVN服务器和使用SVN + Apache rpm安装包安装的SVN服务器的Repository以及权限信息等不能共享,如果想迁移旧的Subversion服务器,需要安装Subversion Edge后重新设置。
本文安装使用与前面文章中不一样的新CentOS 7服务器,安装Subversion Edge前请确认已安装和配置JDK环境,本次安装使用的JDK
Subversion Edge服务器的启动需要使用非root用户,如同之前安装SVN服务器一样,我们创建svn用户,用以启动Subversion Edge服务器。
groupadd svn
useradd -g svn svn
将svn用户加入/etc/sudoers文件中
svn ALL=(ALL) NOPASSWD: ALL
切换到svn用户,执行下列指令
sudo mkdir /opt/subversion
sudo chown -R svn:svn /opt/subversion
sudo chmod o+wx /opt/subversion
从CollabNet官网下载SubversionEdge最新的Linux 64位安装包
需要注意的是,CollabNet官网对Chrome和Firefox等非IE系浏览器支持不佳,直接通过这两个浏览器下载的tar.gz文件大小错误,为180M,接下来会解压失败,建议使用IE浏览器登录官网下载。
将下载后的tar.gz文件放到/opt/subversion目录下,进行解压
tar -zvxf CollabNetSubversionEdge-5.2.2_linux-x86_64.tar.gz
解压后会在/opt/subversion目录下生成csvn子目录
创建csvn.conf文件
cd csvn/data/conf
cp csvn.conf.dist csvn.conf
安装Subversion Edge服务
cd /opt/subversion/csvn
sudo –E bin/csvn install
执行结果如下图所示
启动csvn服务
cd /opt/subversion/csvn
bin/csvn start
启动界面如下图所示(第一次启动初始化会比较费时,需要耐心等待)
启动完成后,需要在防火墙上开放3343端口,供远端访问,我们安装Subversion Edge的服务器ip是192.168.56.101,在打开防火墙端口后我们使用浏览器访问http://192.168.56.101:3343/csvn,这是Subversion Edge的UI管理页面,初始登陆用户名和密码是admin/admin
登录后的管理页面如下图
接下来我们对Subversion服务器进行设置,点击左侧的[Server Settings],打开服务器设置页面
在这个页面中我们设置服务器的HostName为ip地址192.168.56.101,在下面的Apache Encryption行可以勾选[Subversion Server should serve via https],使用https方式访问Subversion,端口号使用前面系列中的8888(需要打开防火墙端口)
Repository Directory这一行是Subversion所有项目Repository的父目录,默认是
/opt/subversion/csvn/data/repositories
点击[Save]按钮保存设置。
保存完成后执行以下指令重启Subversion Edge服务器
cd /opt/subversion/csvn
bin/csvn stop
bin/csvn start
接下来验证使用LDAP验证登录和Repository访问权限
首先在LDAP服务器上新建companies节点,在companies节点下新建company1和company2两个子节点
在company1和company2两个子节点下分别建立svnuser1和svnuser2两个用户,设置登录密码,建好后如下图所示
点击[Configuration]-[Authentication]打开用户验证设置页面,由于我们已经搭建了LDAP服务器,我们在[Authentication Methods]行勾选[LDAP authentication against an LDAP server],并进行如下配置
在[Repositories List]中新建两个Repository Company1Project和Company2Project。
点击左边菜单栏的[Access Rules]菜单,设置SVN目录的访问权限,
这里创建了3个组,管理员组adminGroup,company1组,company2组
adminGroup组包含admin用户,对SVN根木以及其子目录有读写权限。
company1组包含LDAP的svnuser1用户,对Company1Project项目有读写权限。
company2组包含LDAP的svnuser2用户,对Company2Project项目有读写权限。
设置完成后重启Subversion Edge服务器。
重启完成后我们使用TortoiseSVN访问https://192.168.56.101:8888/svn/Company1Project,使用svnuser2用户进行登录,显示没有权限访问
同样我们访问https://192.168.56.101:8888/svn/Company2Project,使用svnuser1用户登录,也
弹出无权访问的错误信息窗口。
如果我们使用svnuser1访问https://192.168.56.101:8888/svn/Company1Project,就会显示Company1Project的目录结构
使用svnuser2访问https://192.168.56.101:8888/svn/Company2Project,同样会显示CompanyProject2的目录结构
接下来我们把Subversion Edge服务做成开机自启动服务,根据CollabNet的官网指南,只需要执行下面两条指令
sudo -E bin/csvn install
sudo -E bin/csvn-httpd install
就可以把CSVN Console和CSVN Apache Http Server的Daemon装上,在系统的/etc/init.d目录下生成csvn和csvn-httpd两个自启动命令,但在具体实践时我发现如果是使用root用户执行Subversion Edge安装时,这两条指令可以成功,重启系统后Csvn页面和Repository都可以访问,不需要手动启动。
如果是非root用户使用sudo命令安装时,执行了上面两条指令后开机后csvn和csvn-httpd都没有手动启动,还需要手动执行bin/csvn start bin/csvn-httpd start启动。这种情况下需要自行添加csvn和csvn-httpd服务。
我们在/etc/systemd/system目录下手动创建两个服务csvn.service和csvn-httpd.service,分别添加以下内容
csvn.service
[Unit]
Description=csvn service
After=network.target
[Service]
Type=forking
ExecStart=/opt/subversion/csvn/bin/csvn start
ExecStop=/opt/subversion/csvn/bin/csvn stop
User=svn
Restart=on-abort
[Install]
WantedBy=multi-user.target
csvn-httpd.service
[Unit]
Description=csvn-httpd service
After=network.target
[Service]
Type=forking
ExecStart=/opt/subversion/csvn/bin/csvn-httpd start
ExecStop=/opt/subversion/csvn/bin/csvn-httpd stop
User=svn
Restart=on-abort
[Install]
WantedBy=multi-user.target
最后执行以下指令激活csvn服务和csvn-httpd服务,并启动这两个服务。
sudo systemctl daemon-reload
sudo systemctl enable csvn.service
sudo systemctl enable csvn-httpd.service
sudo systemctl start csvn.service
sudo systemctl start csvn-httpd.service
重启Subversion Edge所在CentOS服务器,可以确认csvn服务器和csvn-httpd服务确实开机自启动。
django – 跟随Subversion存储库Trunk的最佳实践:Git(镜像),Git-Svn,Subversion?
我只对在Mac上更新Django代码感兴趣.我对为Django项目提供补丁不感兴趣.我不需要Django主干的Subversion历史记录.
我计划将Git用作我所有个人项目的DVCS / SCM.
使用最新的Django主干保持我的Mac更新的最佳做法是什么?为什么?
我是Git的新手,所以理解为什么选择你的选项会非常有帮助.
>使用我的Mac上安装的Subversion 1.4.4:svn co http://code.djangoproject.com/svn/django/trunk/.基本上使用Subversion为我的个人项目获取Subversion repos和Git.
>使用Git SVN获取Django Subversion repo.如何为Git新手执行此操作的说明?
>使用Git来获取Git mirror of the Django repo.我有点担心镜子可能会在将来消失,但如果它是最好的选择,我愿意使用它.
解决方法
如果要对使用Subversion的项目进行本地修改(无论是否将任何修改发送回项目),使用git-svn(通过自己运行或通过克隆其他人的存储库)都很有用.但是如果你没有进行任何局部修改,那么它就是不必要的复杂性.
我们今天的关于Windows预注册挂钩评论长度Subversion的分享已经告一段落,感谢您的关注,如果您想了解更多关于.net – 在Windows上使用的Subversion服务器、AWS CLI version 2 在 Windows 下的安装、CentOS 7中使用Subversion Edge安装Subversion服务器、django – 跟随Subversion存储库Trunk的最佳实践:Git(镜像),Git-Svn,Subversion?的相关信息,请在本站查询。
本文标签: