git - 我应该如何在同一路径中对(某种)不相关的脚本进行版本控制?

标签 git version-control powershell mercurial dvcs

我已经开始使用版本控制来更好地管理对我的 PowerShell 代码的修订。我决定使用 Mercurial 有 3 个主要原因:

  1. 作为 DVCS,它不需要服务器。
  2. 如果我愿意,我可以免费在线存储一个私有(private)存储库 (bitbucket.org)
  3. 它似乎比 Git 更易于使用。

Mercurial 非常适合对 PowerShell 模块进行版本控制,因为每个模块都包含在自己的目录中。但是,我有一些不属于模块的脚本,但我仍然想对它们进行版本控制。这些脚本位于添加到 $env:PATH 的“.\Scripts”目录中,因此我可以轻松地从命令行运行它们。由于这些脚本彼此之间并不真正相关,因此为 Scripts 目录创建单个存储库没有多大意义。

我应该如何对单个脚本进行版本控制?

我想到了以下选项:

  • 为每个脚本/相关脚本创建子目录。
  • 使用临时存储库直到脚本“稳定”,然后将脚本添加到主“脚本”目录并将脚本集合作为一个版本进行版本控制。这将减少引入“脚本”存储库的变更集数量。

有没有一种工具可以更好地处理单个文件的版本控制?使用 Mercurial 对单个文件进行版本控制是否有更好的方法?还有其他想法吗?

最佳答案

根据功能对文件进行分组应该基于

1) 姓名。

2) 他们所在的文件夹。

只需为脚本命名即可。如果有多个相关脚本,将它们分组到一个文件夹中。每个文件夹有一个脚本是没有意义的。您最终得到的文件夹数量几乎与脚本数量相同。

所有这些都在一个存储库中。通常,人们在一个 repo 协议(protocol)中有多个项目。创建多个存储库,尤其是为少数文件创建多个存储库意味着大量开销。如果脚本不是“稳定的”使用分支。这就是它们的用途,并将它们 merge 回去。

不用担心存储库中有多少“变更集”!

PS:可能看起来有点自以为是,但对于您的问题没有真正正确或错误的答案。

关于git - 我应该如何在同一路径中对(某种)不相关的脚本进行版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070506/

相关文章:

git - Jenkins 与 Git : Status code 128

git - 有没有办法获取 `git diff` ,但只包含指定提交者的提交?

git - 树和目录有什么区别?

linux - svn upgrade - 从子目录执行命令时不工作

powershell - 设置 kerberos 约束委派 powershell

powershell:如何将主脚本中定义的一些参数暴露给所有要调用的模块

git - Git 推送后在接收后 Hook 中运行 Gulp

version-control - 如何通知 Mercurial 上某个指定分支的更改?

svn - 在 subversion 中合并时什么时候适合使用 --ignore-ancestry 选项

powershell - 使用终端 Sublime Text 3 以管理员身份运行 Powershell