在有多个系统管理员的环境中,我看到将服务器配置文件添加到版本控制系统中的一些优势。最值得注意的是跟踪更改的能力,谁做出了更改,当然还能够回滚到已知的工作配置。
我主要对 Unix/Linux 解决方案感兴趣,但也会对 Windows 实现感到好奇。
是否有任何版本控制系统在处理大文件方面特别好(或不好)?没什么太疯狂的,但从几百兆字节到千兆字节,比方说。
我们目前有 subversion,但有人抱怨它不适合这个目的。我自己不是开发人员,我不知道他们有多客观,所以我想我会做一个快速的社区调查以获取更多信息。
从系统和用户的角度来看,我对这些 VCS 解决方案的行为或适用性很感兴趣。
TIA。
我正在尝试使用 Ubuntu Quantal 在另一台 PC 中克隆/拉取存储库。我之前在 Windows 上做过这个,但我不知道 ubuntu 上有什么问题。我试过这些:
git clone file:////pc-name/repo/repository.git
git clone file:////192.168.100.18/repo/repository.git
git clone file:////user:pass@pc-name/repo/repository.git
git clone smb://c-pc/repo/repository.git
git clone //192.168.100.18/repo/repository.git
Run Code Online (Sandbox Code Playgroud)
我总是得到:
Cloning into 'intranet'...
fatal: '//c-pc/repo/repository.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
或者
fatal: repository '//192.168.100.18/repo/repository.git' does not exist
Run Code Online (Sandbox Code Playgroud)
更多的:
apt-get install git
(安装了依赖项)是什么导致了这个以及如何解决这个问题?任何帮助都会很棒!
我已经在 Windows 上克隆了 repo,git clone //192.168.100.18/repo/intranet.git
没有问题。所以,repo 是可访问的并且存在!也许问题是由于用户凭据?
想象一下,您要管理多个服务器,这些服务器提供许多不同的服务,供许多人使用。现在假设您要重新配置或替换其中一台服务器上的某些软件。显然,您不想在生产中的服务器上工作。
如果这是代码更改,作为开发人员,我会在本地开发机器上进行更改,在本地进行测试并将更改提交到版本控制系统。然后可以将更改部署在临时环境中,进一步测试并最终部署在生产环境中。如有必要,我也很容易回滚。
一般来说,或者具体来说,您如何在系统管理中实现这一目标?
(首先想到的是使用虚拟机并将虚拟机映像置于版本控制中,但我确信有很多文献和聪明的解决方案我目前不知道。)
我想创建一个中央配置文件存储库,以便我可以在修订控制(Mercurial)下对任何配置进行更改。这将包括一些 GNU/Linux 机器(将使用 etckeeper)、网络设备的配置文件、打印机的配置文件以及最后但并非最不重要的 Windows 配置。
我知道您可以将某些配置(如 ISA 和 DHCP)作为文本/xml 文件导入,甚至可以将共享文件夹作为注册表项导入,但是对于 GPO 和 AD、IIS、MSSql 等内容,有没有办法将配置作为平面文件获取?基本上,你能在 Windows 下拥有一些类似于 etckeeper 的东西吗?像一些基于powershell的命令之类的东西?
此外,ACL 和其他文件权限是否可以在版本控制 (hg) 下保留?
BTW,我已经读过了
无济于事。
我试图想出一种方法来部署 ASP.NET 代码,同时尽可能减少站点干扰。一种想法是建立从 NTFS 连接点提供服务的站点,c:\www\example.com
其中
c:\www\example.com -> c:\www\example.com_r1234
Run Code Online (Sandbox Code Playgroud)
然后,当部署新代码时,它会被复制到c:\www\site.com_r1235
并且连接点重定向到
c:\www\example.com -> c:\www\example.com_r1235
Run Code Online (Sandbox Code Playgroud)
所以我的问题是这可能会对 IIS 中的当前请求产生什么影响?从 IIS 对更改的反应(如果有)的角度来看,这可能还有哪些其他缺点?对于网站的最终用户来说,这会像我希望的那样无缝吗?
(我曾考虑通过命令行更改站点的 Web 根目录,但我真的不喜欢重新配置 IIS 的想法,因为可能会发生任何不必要的应用程序域或应用程序池流失,但我不太了解在负载下更改站点的配置物理路径时会发生什么)
需要明确的是,我在这里唯一关心的是我的最终用户的体验。我的目的是为他们避免干扰,而不是为我提供方便。
我想在 Windows 2008 服务器上设置一个中央 Mecurial 存储库,它只允许对某些用户进行推送和拉取访问。这是为了允许远程工作的开发人员在远程工作时通过中央存储库推送/拉取更改。
我注意到有几个人推荐使用etckeeper将版本控制应用于我的 /etc 目录。
在我看来,默认安装将存储库与您尝试管理的 /etc 放在同一台机器上。这适用于版本控制,但不会提供对文件进行服务器外备份的额外好处 - 或者允许我将 /etc 的部分从一台源机器复制到另一台。
是否可以在中央管理机器上共享单个 git 存储库,以便每个服务器上的 etckeeper 将其数据存储在同一位置?
(我现在用 svn 和一些自定义脚本做类似的事情来提交和恢复文件,但我必须记住在我进行更改时提交它们。)
我们是一家相当小的公司(3-4 名程序员和 3-4 名网站设计师),开发单一用途的 PHP 网络应用程序,该应用程序为大约 100 多个网站提供功能。我们已经在单独的开发和生产环境中运行了几年,并且运行良好。总是有足够多的独立功能需要开发,程序员从来没有真正发生冲突,而且没有源代码控制也更方便工作;即使它有数据丢失的风险,我们也有相当一部分文件在不经意间丢失。
另一个考虑是我们的设计师不精通技术(我向他们介绍了 html 标记,而不是使用所见即所得)。这是在转向版本控制方面犹豫不决的原因之一。
然而,现在我们已经达到了 100 多个站点并且开发团队也在不断壮大,我正在尝试标准化我们的程序,就程序员而言,源代码控制似乎是一个合乎逻辑的步骤。我希望这也能加快我们的补丁部署。
不幸的是,我在设置源代码控制系统方面的经验非常有限。我很想从有类似设置或有转换经验的人那里听到什么:
1) 您是否对所有内容(站点、css、html 模板和应用程序代码)进行版本控制,从而迫使设计人员学习版本控制?或者只是开发应用程序代码的开发人员?
2) 最初设置源代码管理时需要注意哪些陷阱?
3) 部署 dev => 用于源代码控制的生产技巧。
感谢所有的洞察力。
编辑1:当。到目前为止,每个人都建议控制一切。那会让我早早掉头发。在不久的将来,这可能会引发一个新问题。感谢您到目前为止的建议,继续加油!
编辑 2:很多好的答案,我们将研究各种版本控制系统。谢谢大家的回复!
我正在做 svn update 来更新我的 php 网站的代码,但它会留下.svn/
文件夹。
我认为让这些文件公开可读是危险的,但更新系统非常容易。
有没有办法用来svn update
更新系统,而不是导出.svn/
文件夹?
version-control ×10
etckeeper ×2
git ×2
linux ×2
php ×2
windows ×2
apache-2.2 ×1
backup ×1
etc ×1
iis ×1
junction ×1
mercurial ×1
networking ×1
ntfs ×1
permissions ×1
svn ×1
testing ×1
ubuntu-12.10 ×1
update ×1