- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
8年前关闭。
真的很容易在这里伙计们。最好的理由获得胜利。
我是您听说过的一所学校的计算机科学专业的学生,并且已经编程了几年(大约 8 年),所以我已经编写了几行代码。但是因为我从来没有真正分发过——源代码或二进制文件——也没有进行过团队开发(尽管我确信我会!),我从来不需要学习源代码管理系统。我有一个非常无聊的文件夹层次结构 src/project_name
或 src/class_code/hw_or_project_name
如果我需要将代码发送给 friend 或进行评分,只需一个压缩包即可。
近年来,随着我的项目变得越来越大,一些事情发生了变化。我的带有 Time Machine 的 Mac 现在每小时进行一次备份 - 这已经为我节省了很多时间,最近一次是当我通过 SSH 进行重大更改时......然后几个小时后在我的编辑器中保存并关闭过时的副本。
但是,出于某种专业兴趣 - 以及它可能有用的压倒性感觉 - 我决定学习 SCMS。现在,作为源代码“消费者”,我拥有丰富的经验 - git clone
, svn checkout
, cvs co
,那种事情 - 但没有作为维护者,提交者或更新者。
我的问题是:我应该学习什么?现在,你们中的一群人都在尖叫“为什么一个?你会用很多!”但我想学习单片机的基础知识,养成实际使用它的习惯,在最直接的系统上。在我真正需要它们之前,我最好将许多概念内化——分支、标签、 merge 、协作等。
需要明确的是,我不是 Linus Torvalds。我将维护一个,或者可能是几个分支。在我的几十个文件中,我不介意某些操作在一个系统上比在其他系统上多花几百毫秒。
现在我有什么?我有一个虚拟主机。他们提供 Subversion 托管,点击一下,或者我可以在那里存储其他存储库没有问题。出于我无法解释的原因,我更偏向于 Subversion。但这正是我不愿意加入的原因。我知道 Mercurial、Git 等是热门的新东西,正在分发,但我不确定为什么这是一个好处。事实上,我不太确定它是如何工作的。
那么,我应该从什么开始呢?颠覆还是 Git? Mercurial 还是CVS? Visual Source Safe 还是 Perforce? (最后一对是一个笑话)为什么一个比另一个?
感谢您的时间,如果这在错误的部分,我深表歉意。
编辑 谢谢大家!我很欣赏你的评论。考虑到 Git 和 Hg 之间的选择,我可能会选择 Git - 有什么不同意见吗?第二,为什么不是Subversion?似乎共识(不仅仅是在这里)它已经过时或过时了。为什么?
编辑 2 因此,在阅读了所有回复并进行了更多阅读之后,我决定使用 Git。如上所述,“答案”是最好的理由。 Git 似乎比 Mercurial 更受欢迎,即使它不太干净。我正在将更改推送到我的网络服务器,在那里我有 viewgit安装了,效果很好。在我的网络服务器上存储副本的动力是我想在我的多台机器上工作,我希望它们不同步。我也希望有几个工作副本与彼此和我的服务器不同步,我现在明白 Subversion 在这方面很弱。我还在努力解决很多问题,但我现在已经设置好了,这样我就可以从 http pull/克隆并推送 ssh(下一步是设置 Gitosis)。对于希望做我正在做的事情的新手 - 您会发现您的“推送”命令将在第一次起作用,但任何“克隆”副本都不会跟踪您所做的更改。 Git 认为这是一个安全特性......我只是稍微理解为什么,但它与 merge 有关。诀窍是使用 this服务器上的 post-update hook 将新推送的副本 merge 到服务器的工作副本中。
最佳答案
Given the choice between Git and Hg, I'd probably go with Git - any disagreement?
hg up -r null
制作一个 hg repo 裸库,并从裸库中获得一个带有 hg up [some-revision]
的工作副本)。 git revert
和 svn revert
做 完全不同的东西。 git tag
默认情况下制作本地标签,当你想要一个全局可见的标签时,你需要 git tag -a
或 git tag -s
.对面hg tag
创建全局可见标签,局部标签使用 hg tag -l
创建. git rebase -i
用 mercurial 打包,你必须得到 third-party histedit extension你自己。 Second, why not Subversion? It seems to be the consensus (not just here) that it's old or otherwise obsolete. Why's that?
grep -r foo
这样的工具不仅会列出真正的源文件,还会列出这些 .svn 文件夹中的文件。
关于svn - 新用户的 SCM 选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4420566/
我有一份 Jenkins 工作,其中包括一个 Android 应用程序和一个公共(public)库。我使用 Jenkins 的 Multiple SCM 插件下载两个 git repos,然后构建并运
我创建了一个 abc.scm 文件并尝试使用“ guild compile ”、“ scm ”和“|10956 guile "Ubuntu 终端中的命令。 对于“ guild compile abc.
我有一个由几个模块和子模块组成的 Maven 项目。 我使用 SVN 对源文件进行版本控制。 短篇小说 如何在 POM 文件的 scm 属性中指定与其父文件相关的 URL。 漫长的故事 一些模块及其子
我有一个项目,在 jenkins 中运行其构建大约需要 15 分钟(phpunit 是构建中最长的元素)。 我已经配置了 scm 触发的构建(基于 svn),因此每次提交发生时,都会触发构建(使用提交
我想使用 Maven 从远程 SVN 更新本地项目(无需安装 SVN 命令)我尝试在 maven-scm-publish-plugin 中使用备用 scm 提供程序,示例插件配置如下:
我已按照以下说明操作:http://docs.sonarqube.org/display/PLUG/Triggering+SonarQube+on+Jenkins+Job#TriggeringSona
有没有人知道如何让作业根据命令(参数)跳过 SCM 步骤?我希望能够触发作业并使用现有 View (在我的例子中是 ClearCase,但可以是 SVN 工作副本)来运行构建。 这样做的动机是为了节省
我有一个大的多模块项目,我想为 Maven 指定 SCM 信息。 但是,每个模块和父项目在 SVN 上都有一个专用文件夹,因此 SCM 信息似乎特定于每个模块。 我需要为 connection 和 d
我正在迁移到 Gradle 作为 Java 项目的构建工具。 我的主要项目 (A) 依赖于其他项目 (B 和 C)。 目前这些项目中的每一个都单独在 CVS 中,当我想编译 A 时,我必须 check
问题:我需要一个适应度函数来确定分发元素的成本和数量。 表示: 我有 1 个配送中心 (DC)。 我有 3 个商店(S1、S2、S3) 如果某时 DC 有 30 件商品 A。商店要求 DC 向他们发送
我想将我的 Jenkins 备份数据与 git 存储库同步。所以我按照以下步骤操作: 1- 我已将 git global credential 设置到配置下的 jenkins GIT 选项中。 2-
我使用 Git 已经有一段时间了来管理我自己的个人项目。我真的没有想过我是如何使用它的。每当有一个没有真正考虑的里程碑时,我通常会提交所有更改。 但是看了一个blog post提到您应该如何正确提交消
作为项目配置的一部分,我正在尝试从 GitHub 存储库中 check out 特定标签。目前插件配置如下: org.apache.maven.plugins
由于以下错误,最近我无法提交: $ fossil commit $EDITOR './ci-comment-CEA221250987.txt' Unsafe command string: $EDIT
如果我将新的作业参数添加到 SCM 中保存的管道脚本,我该如何使用新参数更新 UI? (没有运行并且作业失败,因为管道尚未从 SCM 中拉出) 为了更详细,我在 SCM 中的管道脚本中添加了一个新参数
我在第一步使用简单的 BlueOcean 编辑器时遇到了困难。我正在尝试创建第一步构建/从版本控制中 check out 。 在一个必填字段中输入scm。我尝试了我的 repo 的 URL,但编辑器显
为正在运行的 Web 应用程序禁用 kudu。为什么? Kudu 会定期消耗 CPU,我想阻止它。 到目前为止,我已尝试通过单击“属性>>终止”按钮来终止该进程。但这个过程又开始了。 最佳答案 您可以
我看到他们有一个看起来像 WPF 的 Windows 版本,一个 mac 屏幕截图在标题栏中显示 Mono。 它是用 Mono 用 C# .NET 编写的吗? (我只是问,因为他们似乎做对了) 谢谢。
谁能告诉我 maven 中 scm connection 和 developerConnection 之间的区别? 我正在尝试使用 mvn release:prepare 进行构建它需要其中之一。 [
在我的项目中,我们必须使用 maben-build-number 插件来构造 jar 的最终名称,为此我们使用 SCN 的修订版,因此我们需要 SCM 但是我们在没有直接访问的受控环境和本地测试环境中
我是一名优秀的程序员,十分优秀!