Articles of 版本控制

基于文本文件的文件准备系统

我正在寻找一个系统来准备内部技术文件,其具有以下基本特征: 源文件应该是人类可读的文本文件,所以它们在版本控制方面performance良好 支持基本格式(如图像,表格,粗体等) 同时使用英文和中文字符 输出为PDF 例如,我可以让用户编写HTML页面并将页面打印为PDF,但这看起来很复杂且容易出错,而HTML仅仅是“人类可读的”。 LaTeX也非常复杂,它有很多的依赖关系,可能会使处理几年前的文档变得困难。 有没有人有更好的build议?

部署/更新Web生产代码的最佳方法

将开发环境中的代码部署或更新到现场生产的最佳方法是什么? 我习惯于先使用好旧的filezila; 删除然后上传新的代码到生产服务器,但是这带来了各种各样的问题,停机是主要的。 我也一直在考虑使用Mercurial或Git等VCS。 这是推送实时代码的最佳方法吗? 感谢您的任何见解。

Web服务器/ http协议如何处理版本控制和压缩?

当客户端浏览器从Web服务器请求文件时,我知道会执行某种检查,因为Web服务器所需的文件可能已被Web浏览器caching。 所以,如果caching中存在文件,则不会发送文件。 但是,如果文件在浏览器中caching后,服务器上的文件发生了变化,则无论如何都会发送和更新文件。 然后,如果您在服务器上启用了压缩function(例如gzipping),则要提供给客户端的文件必须在途中进行gzip压缩,这需要进行一些服务器端处理。 但是,这是如何pipe理的? 在我看来,逻辑的方法是,Web服务器也应该有一个caching,包含在一定的时间范围内所请求的所有文件的最新版本,因此这些文件的压缩版本,以便压缩不必每次请求文件时都要完成。 而且,文件最终是如何请求的? 浏览器是否要求input文件,每次在HTML代码中遇到一个文件,并且该文件没有存储在本地caching中,还是将所有需要的文件求和并同时要求整个文件? 但是这只是从编程的angular度来猜测,而我并不知道。 如果Web服务器系统中的答案非常不同,我主要对Apache感兴趣,但其他答案也是值得赞赏的。

软件版本控制软件

我正在寻找一个小的软件版本控制(更新日志)和一个网页前端的错误提交系统。 我只需要的function是一个更改日志,用户可以看到他们可以期望什么和一个小错误提交系统。 我不需要SVN提供的许多function作为软件版本,因为项目很小,我在本地做所有的开发。

哪个版本控制系统支持LDAP / AD用户和组

有谁知道哪些大玩家(如果有的话)支持LDAP / AD用户和组进行身份validation和数据库权限? 具体来说,我想知道SVN,GIT,Mercurial等将允许用户基于AD权限login/连接,也允许基于AD内的组VC的数据库中的文件夹应用细化的权限。 到目前为止,我的研究还没有certificate这是可能的。

混合Subversion“SVNParentPath”和每个存储库的configuration?

给定一个典型的使用SVNParentPath的Subversion / Apacheconfiguration,并在/svn/下托pipe存储库,如下所示: <Location /svn> DAV svn SVNParentPath /srv/source/svn/repos SVNReposName "Subversion Repository" AuthzSVNAccessFile /srv/source/svn/authz Satisfy Any AuthType Basic AuthBasicProvider file AuthName "Subversion Repository" AuthUserFile /srv/source/svn/htpasswd Require valid-user </Location> 有没有办法来覆盖特定的存储库的configuration, 而不必在不同的path上托pipe他们? 也就是说,有没有什么办法可以像这样添加一个Location块… <Location /svn/my_special_repo> SVNPath /srv/source/svn/repos/my_special_repo AuthzSVNAccessFile /srv/source/svn/repos/my_special_repo/conf/authz </Location> …并覆盖 /svn Location块提供的configuration? 我在上面的configuration中这样做的尝试在Apache错误日志中遇到了奇怪和无用的错误,例如: [Wed Feb 02 11:28:35 2011] [error] [client 10.10.209.120] (20014)Internal error: Can't open file […]

是否有可能使用一个共享的git仓库的etckeeper?

我注意到有几个人推荐使用etckeeper将版本控制应用到我的/ etc目录。 在我看来,默认的安装将存储库放在与您试图pipe理的/ etc相同的机器上。 这对于版本控制来说工作正常,但是不会给服务器备份文件带来额外的好处 – 或者允许我将/ etc的部分从一个源机器复制到另一个源机器。 是否有可能在中央pipe理员机器上共享一个git存储库 ,以便每台服务器上的etckeeper将其数据存储在同一个地方? (我现在用svn和一些自定义脚本来做类似的事情来提交和还原文件,但是我必须记得在做出更改时提交它们。)

如何在ext3 / 4上获得透明,高效的文件系统快照或版本控制?

我一直在考虑版本化文件系统。 这是一个杀手级的function,我已经看过Wayback,ext3cow,zfs,保险丝解决scheme,或只是cvs / svn / git覆盖。 我认为ext3cow模型符合我的要求。 透明,高效,但是我可以不用额外的ls abc@timestampfunction。 只要我以某种方式获得自动化,我的文件的透明版本。 它可以是瞬间的,也可以基于10s,30s,1m,5m,15m等间隔的快照。只要能够有效地处理给定目录中的数千个文件的东西都是各种大小,最小的,但是一些超过100米到1GB。 ZFS是不是真正的select,因为我在Linux上(并且宁愿不使用它通过保险丝,因为我已经有一个我想版本的ext3设置,而不是新的东西)。 那里有什么解决scheme?

移动到源代码pipe理

我们是一个相当小的公司(3-4名程序员和3-4名网站devise师),开发了一个单一目的的PHPnetworking应用程序,为约100多个网站提供function。 我们在一个单独的开发和生产环境中运行了几年,运行得相当好。 总是有足够多的独立特性被开发出来,程序员们从来没有真正的冲突过,没有源代码控制的情况下工作起来更方便。 即使它有数据丢失的风险,而且我们已经有一小部分文件在不经意的情况下丢失了。 另一个考虑是我们的devise师不是技术精通(我介绍他们到HTML标记,而不是使用所见即所得)。 这是犹豫转向版本控制的原因之一。 然而,现在我们已经达到了100多个网站,而且开发团队也在不断增长,我正在努力使我们的程序标准化,对于程序员来说,源代码控制似乎是一个合理的步骤。 我希望这也会加快我们的补丁部署。 不幸的是,我设置源代码控制系统的经验非常有限。 我很好奇从具有相似设置的人,或经验转换的人那里听到: 1)你是否一切版本(网站,CSS,HTML模板和应用程序代码),从而迫使devise师学习版本? 还是只是开发人员在应用程序代码上工作? 2)初始设置源代码控制时需要注意哪些问题? 3)部署dev =>源代码pipe理的生产提示。 感谢所有的洞察力。 编辑1:当。 到目前为止,每个人都在推荐控制一切。 那会让我早早失去理发。 这可能会在不久的将来引发一个新的问题。 感谢您的build议,保持它的到来! 编辑2:很多好的答案,我们将研究各种版本控制系统。 感谢大家的回复!

Git克隆/拉本地networking

我试图克隆/拉在另一台电脑使用Ubuntu Quantal的存储库。 我以前在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 总是我得到了: Cloning into 'intranet'… fatal: '//c-pc/repo/repository.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly 要么 fatal: repository '//192.168.100.18/repo/repository.git' does not exist 更多: 另一台PC有用户名和密码 不是networking问题,我可以访问和ping它。 我只是安装git做apt-get install git (依赖安装) 我从terminal运行git(我没有使用git-shell) […]