免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

[其他] 版本控制之道---Git时代已经来到?(获奖名单已公布-2012-10-30) [复制链接]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
71 [报告]
发表于 2012-10-11 18:18 |只看该作者
回复 67# starwing83

走不仅仅是要干活的原因。。。  还有个原因是我也不知道啊。。。
我就是在年初被你坑了去学haskell的时候顺带了解了一下,很多细节忘了啊。。。

>> 我只问你,我现在想undo到两周以前的情况去,这两周我提交了30个commit,我怎么办?
>> 好,这个说不准你能直接遍历所有的commit,找到两周以内的commit,然后reversed-patch?顺序怎么办?
>> 好,你说不定能直接遍历所有的commit,找到两周以前的commit,然后patch?还是一个问题:顺序怎么办????

patch肯定有个提交时间。找出所有提交时间在两周前的作为set,构造working tree不就完了。。。
darcs专门有提performance的问题(你看git的官网都不会提这个,人家自信得很), ghc的仓库也是因为这个原因从darcs换到git了。这真是一个悲剧。。。

但不是所有工程都有上万,十万,百万的patch。。。
对肯定没有这种需求的,比如notes和个人的配置文件。。。   慢点就慢呗。。。

不过好像darcs是会对最近的set的改动进行缓存的。


那你再帮我想个方案。。。 怎么管理配置文件。。。  很多软件都是在~/下吧? 没有其他地方。。。
如果是darcs, 就可以在~/下产生一个仓库, 每个软件对应一个set。 哪个软件的配置文件改了就将这个patch添加到对应的set。
如果有人找我要某软件的配置文件, 只需要把这个set给他就可以了。
而且还可以增加一个总的set, 在新的机器上直接拉取这个总的set。

我现在。。。  是~/.gits, 里面有各种软件的.git。。。 然后用ln -s 控制~/.git 指向 ~/.gits/ 下的某个软件的.git。。。
比较安全。。。 但很麻烦的啊。。。
而且要在其他机器上复现得一个一个仓库分别下载。。。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
72 [报告]
发表于 2012-10-11 18:23 |只看该作者
回复 68# starwing83

对,git的format清晰有优势。。。
darcs好像没有这方面的specification, 而且format还改过一次。。。不知道darcs的作者是否能意识到有repo format spec是很重要的。


但git格式清晰又怎样。。。 blob可以复用, tree可以复用, 但commit基本就没用处了。。。
得有一个新的概念, 比如叫set。 以及它的相关操作。。。 这基本就是在实现半个darcs了。。。  你愿意做么。。。 你愿意做我就愿意用


还是做与不做的问题。。。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
73 [报告]
发表于 2012-10-11 18:39 |只看该作者
回复 72# OwnWaterloo


    好,达到这个共识我就满意了………………接下来就是做与不做的问题了,我满足了。

如果以后需要这个特性,大不了写脚本实现set得了。

OK,下一个话题。


你看看我70L的发言,我就问你一个问题:commit能带时间,OK你赢了,可是你忽略了一个很悲惨的事情……

…………………………分支怎么办…………怎么支持分支……如果这样还不如用git,因为你只有一个分支——因为你只有一条时间线…………


好,如果每个分支都有自己的commit,也可以解决问题,但是很遗憾的……这就是SVN了,妥妥的……完全一样了。如果真的是这样,darcs就是单文件track版本的SVN,木有任何区别了,对我来说也就没啥吸引力了……

Over~

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
74 [报告]
发表于 2012-10-11 18:41 |只看该作者
回复 70# starwing83

你还纠结这问题啊。。。  那我也瞎猜一个可以不。。。

有patch, 不是以文件为单位的。 一个patch也可以包含多个文件的diff的。
patch也是按content寻址, CAFS, 是记录到仓库里, 与他人共享的。

有set。 记录若干patch。 也是按content寻址。 记录到仓库里,与他人共享。
不需要branch的概念,就像branch在git里也不是object, 而只是一个到commit object的指针。
(前面说得好像不对,貌似连git的tree都没法复用。。。)

每个set,大致对应的就是各个不同的tag的概念。

有history, 就是list of set。我不知道这货应该只是local的,还是应该记录到仓库里与他人共享的。。。
有这个就可以undo了对不对?


我也晕了。。。 难道不是log a-set而是log a-history。。。? 我真不记得了啊。。。
还有, 麻烦的地方是 diff one-set another-set。。。  两个working tree是一个一个patches apply得到的。 当然这个应该会做缓存。。。


你再抓着我不放也没用了。。。  我知道的,包括猜想的都说光了。。。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
75 [报告]
发表于 2012-10-11 18:44 |只看该作者
回复 73# starwing83

这怎么会和svn一样? svn就只有缺少分支的问题么?
hg(官方不带插件的)不也是没有本地分支么? 要分支就是另一个directory。 但记录与分享还是区分了。
至于darcs有没有。。。 你自己找嘛。。。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
76 [报告]
发表于 2012-10-11 18:59 |只看该作者
回复 75# OwnWaterloo


    我是说实现手法好伐?svn最大的问题是太不干净了。

hg有分支……是不带插件的,有分支很久很久了,Vim就是hg管理的,我本地一个myvim分支,我都管了一年半了……

darcs如果分支是拷贝,那就直接嗝屁了——不过居然set比较都嗝屁,那也无所谓了……也就是个better svn而已了。无意义。

还是git好啊……(虽然功能缺了点可能……)

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
77 [报告]
发表于 2012-10-11 19:16 |只看该作者
回复 76# starwing83

hg的本地分支的扩展,你自己搜。。。肯定有。。。  hg才出来是肯定是通过cp 得到本地分支的。
可能后来加入了而已。。。 万一darcs也有,或者之后会加入?

一个管理方式和git完全不同的分布式版本控制工具居然只是a better svn? 那git是不是a better svn?
这种哪怕花点时间去看一眼都不愿意,反而更乐意花时间不断找理由说服自己"这货其实没什么了不起、不过是旧瓶装新酒"的态度我是见多了。
但怎么就在你身上见到了呢。。。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
78 [报告]
发表于 2012-10-11 19:20 |只看该作者
回复 61# xiaopan3322


    Bob, 你见多识广,让我长见识了,从你身上学习好多东西。谢谢!

  的确,用哪种VCS,往往不是一个人说了算了(自己玩的除外),因为VCS本身就是一个团队协作工具。

  合适,应该是选择的一个重要原则,就像找老婆一样。不是最漂亮、身材最惹火的最好,合适自己的才是最好的。  这样说,CC应该是绝色美女,不过保养费用过高,不是一般人可以消受得了。

论坛徽章:
2
狮子座
日期:2013-12-24 13:36:29子鼠
日期:2014-05-06 16:42:00
79 [报告]
发表于 2012-10-11 19:32 |只看该作者
git.没有看什么资料。就看帮助就行了。。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
80 [报告]
发表于 2012-10-11 19:54 |只看该作者
回复 77# OwnWaterloo


    我好像不是这样的吧?我是详细询问了实现原理才这么说的吧?

难道自行车可以带到太空去骑就不是自行车了?就是太空飞船了么……

我的意思很明确了吧?darcs有新用法,我懂了;这种新用法导致了很差的销量,我明白了;他的实现原理,我推导出来了。从实现原理上面讲,darcs和svn并无不同——或者更精确的说,比svn和git的实现原理相差大多了。

CAFS的方式,我就只在git身上看到过,惊为天人,这种差别足够可以把git和其他的VCS拉开一大截的距离了——我记得这句话是你告诉我的,我现在还记得。

在CAFS上面讲,patch-base什么的看都不够看,最多也就是管理的比较精细,玩出一点花巧了……

PS:除了hg我不清楚,CVS,SVN都是patch-based的,请问为什么就不能说a-better-svn了?git完全没法说是a-better-svn,因为他是snapslot-based,汽车可以说是a-better-bike么?一个是人力一个是汽油机哇!如果说CVS是汽油机,SVN是柴油机,而darcs可能是煤油机,那么git就是固体燃料火箭了!虽然煤油机比火箭看上去酷一些,设计的精巧一些(煤油机就是喷气式发动机),但这不能改变煤油机比固体燃料火箭差劲的事实……………………
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP