
SCM
程序员Linc
资深技术专家,专注移动开发与人工智能领域15年+
展开
-
git rebase 小计
这篇小文写的比较容易理解,特此转载。git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态。要搞清楚这个东西,要先看看版本库状态切换的两种情况:我们知道,在某个分支上,我们可以通过git reset,实现将当前分支切换到本分支以前的任何一个版本状态,即所谓的“回溯”。即实现了本分支的“后悔药”。也即版本控制系统的初衷。还有转载 2014-03-11 10:18:21 · 1722 阅读 · 2 评论 -
突击Mercurial SCM(HG)8---hg server 用户认证
结合对docker搭建的hg server进行验证,用户认证其实很简单。请先参考《Docker实践2:用Docker搭建hg-server 》对docker搭建的hg server有个了解。对于我们自己用apache+hgweb搭建的server也适用,不过我没有亲自验证。将容器上的/var/hg 挂到主机上的/hg-repos,里面的两个配置文件hgusers和 hgweb.config可以在主原创 2015-02-15 14:59:36 · 2941 阅读 · 0 评论 -
突击Mercurial SCM(HG)3---撤销操作
1.撤销add 有时候我们用hg add 没加参数,直接把所以没有纳入版本库的文件都添加进来了。而有些文件我们不是想添加的,怎么办?因为我们是add进来,第一个想到的命令是remove。我们执行一下,hg会给我们如下提示:file has been marked for add (use forget to undo)对,它推荐使用forget命令。这时forget命令就派上用场了。hg forg原创 2014-11-20 16:48:49 · 6907 阅读 · 1 评论 -
突击Mercurial SCM(HG)5---Ubuntu下apache+mod_wsgi搭建hg server
在《Publishing Mercurial Repositories》这篇文章中介绍了很多种将我们自己的hg代码库发布/公开的办法。其中最轻量型的办法是使用hg自带的web server发布,只需要在代码库目录下执行命令hg serve就搞定。但是这只是一个临时的方案,如果想要更健壮更安全,官网还是建议使用hgweb脚本+Web server(apache,IIS等)的方式。查看资料后,我权衡利弊,准备以《Serving Mercurial repositories with Apache and m原创 2015-01-22 20:21:52 · 3525 阅读 · 1 评论 -
rabbitvcs
有时候也会用到svn来管理源代码的项目,只用svn命令还是不够的,我们需要图形界面去更容易的操作提交、合并代码和浏览版本历史(不得不承认,命令行不是万能的,有时候还是图形界面更加方便)。在Linux下,我们需要rabbitvcs。rabbitvcs不但可以管理svn,还可以管理git和mercurial。下载安装参考此页面:http://wiki.rabbitvcs.org/wiki/downloa原创 2015-02-25 18:33:55 · 12626 阅读 · 2 评论 -
突击Mercurial SCM(HG)
这个叫水银的源码管理工具虽然默默无闻,但还是得到了很多团队的使用。为了迎合某些团队的需要,我们也要用它来管理我们的代码。今天的任务是先突击学习,磨刀不误砍柴工。对工具的掌握越快,工作的效率就会越高。1.安装首先从官网下载最新的版本,我这次做个实验,下载了3.2-rc。解压到你指定的目录下:[linc@localhost mercurial]$ lsmercurial-3.2-rc.tar.gz原创 2014-10-27 21:29:12 · 4447 阅读 · 2 评论 -
突击Mercurial SCM(HG)10---配置管理一个新项目
新起一个项目,要从服务端做起。我是用docker搭建的hg server,我的repos目录在~/hg-repos/repos下,那么我可以去此目录init一个项目,然后其他端就可以clone下来。问题是我在此目录做 hg init 操作需要root权限,如下:$ sudo hg init linctest$ lldrwxr-xr-x 3 root root 4096 3月 2原创 2015-03-26 18:06:05 · 2371 阅读 · 0 评论 -
git解决冲突与merge
git冲突的场景与其他SCM工具一样,我在这边修改了文件a,同事也修改了文件a。同事比我先提交到仓库中,那么我pull代码时就会报错:$ git pullremote: Counting objects: 39, done.remote: Compressing objects: 100% (30/30), done.remote: Total 39 (delta 13), reused 0原创 2015-04-25 13:17:44 · 151041 阅读 · 0 评论 -
突击Mercurial SCM(HG)11---自搭Server后push遇到的问题
时隔半年后接着突击Mercurial SCM(HG)5—Ubuntu下apache+mod_wsgi搭建hg server讲述提交代码时遇到的问题。1.ssl问题$ hg pushpushing to http://localhost/repos/welcomePlayersearching for changesabort: HTTP Error 403: ssl required因为我们原创 2015-08-28 09:58:31 · 2888 阅读 · 0 评论 -
突击Mercurial SCM(HG)12---解决repository is unrelated的问题
情景再现我在服务器上init一个项目ProjectA,无内容。 我在PC1上clone此项目,加入源代码文件commit后,push出错。 我想在PC2上调式错误,就又clone了此项目,而后新增一个文件。 一会儿push问题解决了,我也将PC2上的文件push到服务器上。接下来,我在PC1上pull代码,出现如下提示:$ hg pullpulling from http://localho原创 2015-11-03 15:37:39 · 2758 阅读 · 0 评论 -
突击Mercurial SCM(HG)13---回退到指定版本
团队开发中,版本回退是老生常谈了。通常版本回退的原因是代码中出现重大错误了,要回退到上一个可运行的版本。 这是一个很危险的动作,而我们使用revert命令来做这个危险动作。$ hg revert --helphg revert [OPTION]... [-r REV] [NAME]...restore files to their checkout state Note: T原创 2016-01-29 15:29:52 · 7404 阅读 · 1 评论 -
突击Mercurial SCM(HG)7---not trusting file /opt/tortoisehg/.hg/hgrc
有时候我们不同的项目需要用不同的身份获取和提交代码。为了应对这个需要,我们可以在每个项目的.hg目录下创建一个hgrc文件去配置不同的用户名,比如:[ui]username = linc但刚刚遇到一个问题,在项目路径启动thg,报一个错误:$ thg$ not trusting file /opt/tortoisehg/.hg/hgrc from untrusted user root, g原创 2015-02-02 18:09:18 · 2738 阅读 · 0 评论 -
突击Mercurial SCM(HG)6---图形化工具TortoiseHg
不得不说,在看提交记录时还是看图形化界面来的方便。用git有gitk,那么hg有什么呢?那就是今天的主题thg。Tortoise系列在源代码管理圈子中小有名气,TortoiseHg也是一样,开源,易用。安装在Windows下自不必说,在Ubuntu上有时还是让人困惑的。官方不推荐直接apt-get install,因为Ubuntu自带的软件源版本会很低,推荐两种方式安装:原创 2015-01-30 17:29:19 · 3477 阅读 · 0 评论 -
突击Mercurial SCM(HG)4---Merge
Scenario:当自己修改完代码,准备commit之前做了一次pull+update,做了些解决冲突工作,然后验证代码是否正常工作。确认一切正常后,执行hg commit,然后执行hg push。但是网络出现问题,push失败。等到网络恢复正常后,发现自己的版本已经不是最新版了,push继续失败。提示:abort: push creates new remote head 8f1da767f59原创 2014-12-17 19:05:21 · 9170 阅读 · 0 评论 -
Git冲突:commit your changes or stash them before you can merge.
今天用git pull来更新代码,遇到了下面的问题:error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.javaPlease, commit your changes or stash them before you can merge.Aborting原创 2014-03-19 13:39:09 · 377569 阅读 · 19 评论 -
Eclipse for c++ 安装SVN插件并从Google Code下载源码
<br /><br />本文转自网络.<br /> <br />该版本默认使用CVS插件进行版本管理。下面安装SVN插件,以便能下载Google Code上的源代码。<br /><br /><br />以下是一些关键步骤:<br /><br /><br />其中http://subclipse.tigris.org/update_1.0.x是SVN插件的下载站点【subclipse是Eclipse的SVN插件】。<br />以update_1.0.x为例<br />Select All 然后单击Next..转载 2011-04-21 10:45:00 · 4448 阅读 · 1 评论 -
VISUAL SVN安装 及客户端使用
<br />1.为什么要用VisualSVN Server,而不用Subversion?<br />回答:<br />因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候S转载 2010-06-09 14:04:00 · 114554 阅读 · 11 评论 -
Linux svn使用
1.检出(check out)功能:从SVN库中取出已有的文件.命令行操作:在本地创建工作空间,创建一个空的文件夹 $>mkdir filename在新建文件夹下执行命令:svn checkout path(path是svn库地址) (简写命令svn co),例: 2.提交(commit)功能:将工作复本中修改的文件或新添加的文转载 2013-12-26 13:58:23 · 5521 阅读 · 0 评论 -
Windows XP 下如何使用Qt Creator中的Git版本控制功能
<br />Qt Creator是针对Qt应用开发平台专门设计的IDE开发工具,集成了很多功能,分别有windows、Linux、Mac版本。对于那些经常使用Qt的开发者,就不多介绍了。下面讲讲如何在Qt Creator中使用版本控制,Qt Creator中可以选择Git或是Subversion来进行版本控制,我选择Git,为什么?你可以看看这两篇文章<<活灵活现用Git-基础篇>>和<<活灵活现用Git-技巧篇>>,如果你早就熟知Git,快走吧。<br /><br />这里有几个前提要注意:<br /><转载 2010-07-14 17:02:00 · 2157 阅读 · 0 评论 -
git diff with meld
Meld is a diff tool, how to use it with git?1. install meldsudo apt-get install meld2.need a scriptsudo gedit /bin/git-meld.sh#!/bin/shmeld $2 $5sudo chmod +x /bin/git-meld.sh3.g原创 2013-09-12 06:06:10 · 4409 阅读 · 0 评论 -
git查看文件历史
用git log来查看git库的历史,对于某个文件,使用--pretty命令,命令格式如下:git log --pretty=oneline 文件名如我查看Linc/Home/Myhome.javagit log --pretty=oneline Linc/Home/Myhome.java会打印出如下列表:85654dfgdlkdsgfokidfsdfsdf balabal原创 2013-03-28 14:16:31 · 2441 阅读 · 2 评论 -
如何在svn系统中使用git
如果正在使用svn,打算换到git,又暂时不想放弃已有的svn代码库,可以选择git-svn。说一说我自己从svn到git的经验吧。开始安装最新版本的git,从git 1.5.3以后支持git-svn,git和svn的配合就要借助这个功能。安装完毕后要做一些简单的配置。最直接的做法就是创建修改~/.gitconfig。下面是我的.gitconfig[user]转载 2012-01-29 19:56:15 · 3100 阅读 · 0 评论 -
活灵活现用Git-技巧篇
<br /><br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://phoenixtoday.blogbus.com/logs/35149540.html<br />上一篇介绍了Git的基本概念和一些基本命令,本篇的重点在如下三个部分:个性化定制你的Git,更酷更巧妙的使用Git,以及如何在Git Hub上开启你自己的开源项目。在所有技巧中,最重要的技巧是学会查看Git的帮助,因为Git是一个相对复杂的版本控制工具,如果你熟悉它的命令,那么 给你带来的价值是不言而喻的,所以转载 2010-07-14 16:45:00 · 1282 阅读 · 0 评论 -
突击Mercurial SCM(HG)2---当前状态
当我们clone下来代码后,默认会在某个default分支上。hg clone your-src-url代码库克隆下来后,查看一下当前代码库的状态14:30linc@Linc-Ubuntu:Demo$ hg summaryparent: 2014:xxxxxxxxxxxxxxxThis is a description.branch: defaultcommit: 3 unknown (c原创 2014-11-18 18:15:36 · 2794 阅读 · 0 评论 -
奇怪的git代理超时问题
曾几何时在公司用代理上过网,后来在家里使用git访问csdn code和github就出现代理超时的问题,如下:$ git clone https://github.com/bumptech/glide.gitfatal: unable to access 'https://github.com/bumptech/glide.git/': Failed to connect to proxy.xx原创 2016-02-14 13:58:03 · 9537 阅读 · 1 评论