我公司在Surround SCM中拥有大量代码库,几年前从SourceSafe迁移过来.我们正在寻求更适合我们需求的东西,但是从Surround获取我们的历史证明是一项挑战.
谷歌搜索git导入器,我找到了一个关于自定义导入器的好教程.似乎也支持svn,perforce和许多其他人,但没有Surround.
只拍一张快照并开始一个新的git repo会更好吗?或者是否值得编写脚本以获得15年以上的代码历史记录?
我目前正在研究ClearCase,现在正在迁移到GIT.但是我们需要这种迁移,所有工作都将在GIT中完成,数据将被同步支持ClearCase流.我们将在GIT和CC中使用相同的分支名称和流名称,因此编写脚本应该不是问题.这里的问题是,
有人可以建议哪个是同步CC和GIT的最佳模型
将CC中的所有Vobs作为GIT中的单个回购,并将CC中的主要流作为GIT中的各个分支. - 单GIT仓库(VOBS)和许多分支(CC流). - 由于VOB被保存为具有许多分支的单个仓库,因此占用的空间更少.
将重要的CC分支作为独立的GIT存储库,每个存储库具有所有CC VOB. - 许多CC分支的许多GIT仓库 - 这将占用大量空间,因为VOB将被复制.
您认为哪种方法是与ClearCase保持同步的最佳方式
我会在版本控制下放置大量数据,即目录结构(深度<= 5),数百个文件,大小约为500Mb).
我需要的是一个系统,可以帮助我: - 检测文件是否已被更改 - 检测文件是否被添加/删除 - 克隆整个存储库在另一个位置 - 存储"检查点"并在以后恢复
我不需要sha1进行变化检测,更快的速度是可以接受的.
git值得吗?还有更好的选择吗?
这可能是显而易见的,之前已经多次以不同的方式询问过,但是在搜索了一段时间之后我找不到答案.
假设如下:
如何有效地从远程存储库中提取或获取DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN的最后提交版本,而不是其他任何内容?
和
来自远程存储库的DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN 中的单个文件的最后提交版本,没有其他内容?
和
如何有效地提取或获取以前提交的所述文件子集的版本而不是其他内容?
也许fetch/pull不是正确的命令.
我感兴趣的是使用传统SCM产品(ClearCase,AccuRev,Perforce等)和Git对分布式团队的大型项目的价值(或缺乏).
在提高团队活动可见性方面是否有显着的增值?控制分支和合并?访问控制和安全性?发布工程?其他因素?
或者Git本身更好吗?或者是否有一个开源SCM,它将等同于上面提到的商业产品?
谢谢.
我有一个情况,我有一个老年人的CVS存储库,我们希望一次性转换为git,同时保持完整的历史记录等.
存储库根目录下的所有文件夹都包含Eclipse项目(普通或动态Web项目),包括.classpath和.project.我们使用Team ProjectSet来检查给定任务所需的项目(项目集位于包含main的项目中,其余是库项目).
签出Team ProjectSet后,工作区将完全填充.
多年来这种方法运作良好(除了3.5附带的项目设置部分),如果可能的话,我们希望以类似的方式使用git,但我们不确定如何.
我玩过一段时间git cvs import但失败了 - 可能是因为我们没有使用模块.
您如何建议我们这样做,以及我们应该如何使用git来允许我们当前使用共享库项目?我们将HAVE介绍Maven和创造我们的图书馆项目的Maven模块?或者只是蚂蚁常春藤?
编辑:我现在设法通过合适的cvs2svn调用将我们的CVS存储库转换为Subversion,并发现Eclipse很好地识别了生成的Subversion存储库.不幸的是在克隆http: //github.com/iteman/svn2git`并尝试运行bin/svn2git之后我得到了
tra@Sandbox:~/cvsgit/svn2git/svn2git$ bin/svn2git
bin/svn2git:35:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
from bin/svn2git:35:in `new'
from bin/svn2git:35
Run Code Online (Sandbox Code Playgroud)
这是与Ubuntu 10.04.1 LTS服务器,我尝试了各种sudo与Ruby及其宝石的东西,但没有完全理解我做了什么,因为我不是一个Ruby程序员,所以我可能搞砸了一些东西.我很感激建议 - 如果最简单的是安装另一个Linux变种来进行转换,那很好.
编辑:
https://help.ubuntu.com/community/Git http://css.dzone.com/articles/subversion-git-morning
编辑:我第一次尝试使用默认的svn2git成功完成(一段时间后),我得到一个很好的存储库,其中git branch -a大致报告
tra@Sandbox:~/gitroot/svnroot$ git branch -a
* master
remotes/XX64_DEPLOYED_CODE
remotes/Beta1
remotes/Beta2
remotes/SV46
... lots more
Run Code Online (Sandbox Code Playgroud)
我们有兴趣能够检查SV46分支并使用它(我们基本上不关心标签,只关心实际的分支).我已经设置了gitosis并将此存储库推送到gitosis,并将其克隆到另一台计算机,以了解如何使用Eclipse进行"使用SV46"位. THAT库不知道所有的分支:
tra@TRA ~/git/git00 (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
我是否需要按照svn2git的原始结果来获取gitosis存储库中的信息?我需要用参数克隆吗?我应该使用建议的版本而不是Ubuntu附带的版本重做svn2git步骤吗?
编辑:事实证明,使用"git …
精简版
需要每天早上向70多人分发每晚构建,想要使用git来平衡传输,并且在我开始设计系统之前想知道是否存在提示,陷阱或缺陷.
长版
每天早上我们都需要将我们的夜间版本分发给70多人(艺术家,测试人员,程序员,制作人员等)的工作室.到目前为止,我们已将构建复制到服务器并编写了一个同步程序来获取它(使用下面的Robocopy); 即使设置了镜像,传输速度也会慢得多,因为在高峰时间需要一个小时或更长时间才能同步(非高峰时间约为15分钟),这表明它是硬件I/O瓶颈.
我有一个很棒的(虽然绝对不是原创)想法是在整个工作室分配负载.在调查使用臭名昭着的bit-torrent协议编写客户端之后,我想到了另一个想法,我可以使用git作为设计,它可以让我们分发构建和修订管理,同时减少服务器的额外好处.
问题
你如何开始使用git?我有像Perforce和SVN这样的集中式源控制系统的经验.阅读文档,似乎您需要做的就是运行git init path\\to\folder,然后在另一台机器上运行git clone url?
我在哪里获得url上述git clone命令?我可以定义吗?我发现有一个网址奇怪的概念,因为git没有中央服务器 - 或者是这样吗?例如类似于一个比特洪流的跟踪器?
识别构建,使用变更列表编号或标签的更好选择是什么?
是否可以限制存储的修订数量?这将是有用的,因为除了夜间构建之外,我们还有一些我们想要分发的CI构建,但是无限数量修订无处不在.在Perforce中,您可以通过设置属性来限制修订.
使用git-lfs/1.1.0(GitHub; linux 386;转1.5.1),文件大小4.3G.
git init
git lfs install
git lfs track *.nnex
Run Code Online (Sandbox Code Playgroud)
.gitattributes: *.nnex filter=lfs diff=lfs merge=lfs -text
git add evernote-backup.nnex: fatal: Cannot handle files this big
git lfs ls-files: Git can't resolve ref: "HEAD"
git lfs track: Listing tracked paths evernote-backup.nnex .gitattributes)
git lfs env:
WARNING: Reading LFS config from ".gitconfig", not ".lfsconfig". Rename to ".lfsconfig" before Git LFS v2.0 to remove this warning.
git-lfs/1.1.0 (GitHub; linux 386; go 1.5.1)
git version 2.1.4
LocalWorkingDir=/home/vitaly
LocalGitDir=/home/vitaly/.git …Run Code Online (Sandbox Code Playgroud) git ×10
clearcase ×2
accurev ×1
c# ×1
cvs ×1
eclipse ×1
git-branch ×1
git-lfs ×1
java ×1
large-files ×1
perforce ×1
repository ×1
surroundscm ×1