Visual SVN Server:提交前/提交后挂钩指南

2024-03-24

考虑到这里的评论,这可能是最好的维基百科:分享常用/有用的 SVN 预提交钩子 https://stackoverflow.com/questions/884608/share-common-useful-svn-pre-commit-hooks

我在 Windows 7 计算机上使用 Visual SVN 2.1.7。我们有来自不同国家/地区的开发人员,我们可以通过运行更改的本地副本,然后通过 ftp 手动上传到正在处理的每个网站的服务器来管理代码更改。

这是一个非常耗时的过程,但比修复实时网站上的错误要少耗时,因此这是朝着正确方向迈出的一步。

在 Visual SVN 网站上,它提到了提交后和提交前挂钩,但未能显示可以访问的位置,即使它提到有一个 GUI。安装的版本中没有 GUI 的迹象,甚至没有选项,所以我首先无法找到访问它的位置。

假设它可以通过脚本来完成,我已经用谷歌搜索并来到 SO 寻找一些关于它可能在哪里以及如何完成的指导,但它似乎比我希望的要复杂得多。

有谁有关于如何在 Windows 上执行以下任务(未安装 perl)的经验或指导(包括示例脚本)?

a) 创建预提交命令/文件并将其执行附加到存储库/提交给它 b) 创建一个提交后命令/文件并将其执行附加到存储库/提交给它

就我而言,一项具体任务: c) 如何在 PC 上安装本地 Visual SVN,以便将提交的文件发送到远程 CentOS 共享托管服务器(不是 VPS/Dedi 或云托管,并且 SVN 无法安装在这些计算机上)

这是一个很棒的软件,但似乎要高效使用它的障碍相当高,因为不清楚您需要问什么问题或在哪里查看。希望您可以帮助那些陷入同样困境的人提供一个更好的起点。

谢谢 :)


访问钩子:

1.启动VisualSVN服务器管理器

2.打开存储库的属性

3.选择“挂钩”选项卡

4.编辑需要的hook

钩子是约定而不是基于配置的。您不必将它们“挂钩”。创建一个pre-commit钩子,并且在提交之前有一个钩子正在运行。创建一个post-commit钩子,并且您有一个在提交后运行的钩子。

以下是您可以在提交后脚本中根据需要执行的步骤:

您将存储库路径和修订版作为参数提交给提交后挂钩,因此请使用类似的内容repo=%1 and rev=%2来获取这些值。

提交后复制文件的一种方法是在服务器上有一个工作副本,发出svn update在提交后挂钩中提交后在此工作副本上,然后复制文件。您可以通过使用以下命令获取更改的文件来选择性地复制文件svnlook changed http://www.visualsvn.com/support/svnbook/ref/svnlook/c/changed/。 svnlook 需要修改并使用rev您之前设置的变量。

脚本本身可以是任何语言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual SVN Server:提交前/提交后挂钩指南 的相关文章

  • 如何将bug修复分支合并到主干和发布分支

    考虑以下情况 开发主要在trunk中完成 修复复杂的错误或开发新的 一开始不稳定 功能时使用分支 通常 一旦开发完成 这些分支就会合并到主干中 1 分支用作当前版本分支 当前为 R 1 0 标签用于发布 将是 R 1 0 0 现在必须修复
  • 你能帮助解释我的 svn diff 输出吗?

    我正在使用 SVN DIFF 比较两个文件夹 一个在分支中 一个在主干中 目的是确定更改列表 然后我对分支中的文件进行了一些更改 但输出显示我已经在主干中修改了它们 为什么会出现这种情况 有没有更好的命令来获取我正在寻找的结果 我现在使用的
  • 将svn迁移到git的子目录

    我想用 git 替换我的 svn 存储库 不幸的是 我无法一次性完成此操作 长话短说 我需要将带有历史记录的 svn 存储库移动到预先存在的 git 存储库的子目录中 所以我目前有 svn svn1 svn2 git git1 git gi
  • 更改 Subversion 错误消息的语言

    由于某种原因 subversion 返回了我认为是德语的错误消息 svn up svn Zielpfad existiert nicht 不幸的是 我不懂那种语言 在我诉诸使用在线翻译引擎来解决这个问题之前 我想我会尝试修复它 我想我只是做
  • svn 外部...是或否?

    我在这里读到了一些谴责使用 svn externals 的答案 我确实看到它们如何被滥用 这确实使我们更加依赖 Subversion 但我真的不认为我们的团队会很快放弃它 无论如何 这就是我的困境 我们的解决方案引用了多个项目 这些项目位于
  • git svn clone 在 Mac OS X 上失败:“名称为‘svn_delta’的临时文件已在使用中”

    我已经从 MacPorts 在我的 Mac 上安装了 git core svn 这给了我 git core 1 7 12 2 0 credential osxkeychain doc pcre python27 svn subversion
  • 使用登录名签出 svn+ssh

    我想从存储库中签出一些内容 但是我输入 svn co svn ssh URL 我被要求输入密码 我想他使用的用户名来自我的控制台 但两者不一样 那么我如何使用不同的登录名使用 svn ssh 签出某些内容呢 SSH 允许您在连接 URL 中
  • 用于 Tortoise 客户端的 Windows Subversion 服务器 (SVN)

    我的问题是这样的 在 Windows 上使用的 Subversion Server https stackoverflow com questions 615866 subversion server to use on windows 唯
  • 当主干/分支/标签结构混乱时,如何从 Subversion 迁移到 Mercurial?

    我想将存储库从 Subversion 转换为 Mercurial 但是当我最初设置存储库时 我以最懒的方式完成了它 随着时间的推移 该结构不断变形和恶化 此时已有 5 年历史 尽管如此 我还是想保留尽可能多的历史 即使我必须弄脏并手动将东西
  • 重命名目录,现在 SVN 不允许我提交

    我有一个名为 old dir 的目录 一个 Maven 项目 我通过在 Tortoisesvn 中执行 svn 重命名将名称更改为新目录 如果你执行 svn status 我会看到它在新目录上完成了 SVN add 并在旧目录上完成了 sv
  • SQL Server Management Studio 2005 或 2008 是否有 SVN 插件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 正在寻找一个 源代码控制 插件来将 SSMS 与 Subversion SVN 集成 有人知道其中一个吗 Redgate 的解决方案似乎是
  • virtualenv、python 和 subversion

    我正在尝试在 python subversion SWIG 库中使用virtualenv no site packages环境 我怎样才能做到这一点 你可以从 svn 将其安装在 virtualenv 中 source home you v
  • Eclipse、Subclipse 1.8.2、SVN 1.7.0 每次操作都要求输入密码

    我安装新的后日食靛蓝 它会要求我输入密码SVN存储库透视图 例如 浏览每个文件夹并再次询问密码 正常使用SVNKit 它要求输入密码每次会话一次 SVNKit 不支持SVN 1 7 0 yet 我该如何解决这个问题 或者这是 JavaHL
  • 以最小的努力在多台计算机之间同步代码

    我希望能够跨多台计算机 准确地说是 3 台 同步源代码和整个项目 我尝试过使用 git 但从来没有获得过无忧无虑的体验 也许是因为我从来没有投入很多精力 所以 我理想中想要的是 能够将文件夹及其所有子文件夹添加到 同步 列表 基本上 一旦我
  • 如何使用 TortoiseHg (Mercurial) 下载代码

    我正在尝试下载代码世界上最差的stackoverflow克隆 http code google com p theworldsworststackoverflowclone source checkout 起初我尝试过Tortoise SV
  • 如何使用 git-svn 使 svn:external 保持最新?

    将我的存储库视为 SVN 存储库 我得到 svn co http myrepo foo trunk foo foo bar baz gt http myrepo baz trunk 将其视为 Git 存储库 我得到 git svn clon
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • 使用 cygwin 安装 rsync [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想通过 rsync 备份 Solaris 服务器上的 Win XP 中的目录 我安装了 cygwin 但是当我输入 rsync 时 我得
  • 比较在 Eclipse Neon 中不工作

    我 最后 尝试从 Mars 2 升级到 Eclipse Neon 安装 SVN 支持和 SVNKit 1 8 14 连接器后 我可以访问我的存储库 然而Compare不管用 如果我右键单击已修改的文件 然后选择与工作副本中的基础进行比较将显
  • 为什么安装 TortoiseSVN 后 AnkhSVN 解决方案中的所有文件都标记为新文件?

    安装 TortoiseSVN 1 6 0 后 加载到启用 AnkhSVN 的 Visual Studio 2008 项目中的所有文件都被标记为新文件 蓝 色 我尝试重新安装 AnkhSVN 2 0 6347 并将存储库检出到新的 干净 文件

随机推荐

  • 使用 LINQ 获取一个 List<> 中不在另一个 List<> 中的项目

    我假设有一个简单的 LINQ 查询可以做到这一点 我只是不太确定如何做 鉴于这段代码 class Program static void Main string args List
  • jTable 中的 jButton 不可点击

    我遇到了问题 我无法单击按钮 它们的行为就像只是带有按钮设计的文本字段 my Main tableModStudents DefaultTableModel studentsTable getModel studentsTable getC
  • C# - 哪个更快:String.Contains() 或 Regex.isMatch()? [复制]

    这个问题在这里已经有答案了 可能的重复 Regex IsMatch 与 string Contains https stackoverflow com questions 2962670 regex ismatch vs string co
  • 为什么 System.out.print 会导致自动刷新?

    System out 是一个 PrintStream 对象 我阅读了有关 PrintStream 的文档 我不明白的是为什么 System out print 会导致缓冲区被刷新 这种情况不应该只发生在 println 中吗 这种情况不应该
  • IndexError:读取 python 的 CSV 文件中的列表索引超出范围

    我有一个包含 30000000 个条目的 csv 文件 像这样 3 2 2 2 2 2 2 当我尝试颠倒词序时 我收到以下错误 Traceback most recent call last File home grpus dg py li
  • 如何在 CodeIgniter 中创建库类的多个实例?

    我想在 CodeIgniter 中创建一个类的多个实例 我已将我的类创建为一个库 但无法弄清楚用于创建多个实例的语法 来自 CodeIgniter 用户指南 CI 用户指南 加载器类 http codeigniter com user gu
  • 将 puppeteer 与 imgui-js 结合使用

    如果问题的长度可能很吓人 问题的摘要是如何从节点服务器与前端应用程序交互 我相信 Puppeteer 的使用应该伴随着该请求的解决 问题很大 因为我解释了我在浏览器中实现后端代码 傀儡师 工作的所有失败尝试 除了构建和运行存储库之外 尽管按
  • Android Fragment 中的 EditText 值不刷新

    我正在使用Viewpager在 3 之间切换fragments 一切工作正常 除了第二个选项卡的刷新 或fragment 在这个选项卡中 我有一张图片 一些静态的Textviews 一些动态TextViews还有一些EditText fie
  • 如何生成 pool_transactions_genesis 和domain_transactions_genesis?

    我正在尝试创建 Hyperledger Indy 网络 并且一直在遵循阅读文档 https hyperledger indy readthedocs io projects node en latest start nodes html 我
  • 在 SQL 中的 CAST 中使用 & 符号

    SQL Server 2005 上的以下代码片段在与号 上失败 select cast
  • 在两个片段之间拖放

    我正在研究用户界面上同时可见的两个不同片段之间的拖放操作 我想将视图从一个片段拖到另一个片段中 我可以在片段之间拖动它 但我面临的不好的是我无法在第二个片段上监听 onDrag 以获取第一个片段的视图 简而言之 第二个片段上的 OnDrag
  • 如何将 Play 与自定义模块和持续集成结合使用

    如何在 CI 系统中设置 Play 应用程序和 自定义 Play 模块的构建 以便当模块的构建良好时 构建会将模块工件安装在本地存储库中和 或将它们部署到远程存储库 并且应用程序使用该存储库中的工件 该解决方案也应该适合在本地工作的开发人员
  • Android 应用内计费 v3:“无法执行操作:queryInventory”

    我第一次使用新的 v3 API 设置应用内结算 它在我的设备上运行正常 但我收到了其他用户的很多错误报告 其中之一是 java lang IllegalStateException IAB helper is not set up Can
  • 如何定义,系统中DEP为ON

    德尔福Xe XP Vista Win7 WAR 2008R2 0 支持DEP 数据执行保护 CPU Function isCpuDEP bool begin Result end 1 如何定义系统中DEP为ON Function isEna
  • 无法获取用户列表[重复]

    这个问题在这里已经有答案了 我想在我的应用程序中显示用户列表 我使用默认的Auth来自 firebase 的系统 但回复总是空的 FIRDatabase database reference child users queryOrdered
  • 如何检查 JavaScript 对象是否是 DOM 对象?

    我试图得到 document createElement div gt true tagName foobar something gt false 在我自己的脚本中 我曾经只使用它 因为我从来不需要tagName作为财产 if objec
  • 拖动 D3 节点时防止单击操作

    我可以单击 D3 节点来获取alert 信息 我也可以拖动 D3 节点 但拖动也会在释放鼠标时触发单击行为 有没有办法阻止拖动节点后的点击行为 这就是我所说的拖动 var node svg selectAll node data graph
  • 使用 clickonce 在 C# 解决方案中部署外部文件

    我在使用 Visual Studio Express 2010 c 版本时遇到问题 我有一个引用 DLL 的项目 该 DLL 有一个外部 Excel 文件标记为 构建行动 内容 复制到输出目录 始终复制 当我构建解决方案时 此 Excel
  • 矢量形式的垂直风可视化

    我有屏蔽数组格式的垂直风数据 我想将其绘制成矢量形式 masked array data 4 06932000e 04 4 06932000e 04 5 70601827e 04 2 43262173e 04 2 43262173e 04
  • Visual SVN Server:提交前/提交后挂钩指南

    考虑到这里的评论 这可能是最好的维基百科 分享常用 有用的 SVN 预提交钩子 https stackoverflow com questions 884608 share common useful svn pre commit hook