`

git ,hg,svn等代理

 
阅读更多


1,CVS
CVS使用代理非常麻烦,似乎不能用http代理(如果偶错了请提醒),而socks代理相当难找。好在这个东东已经慢慢变成了昨日黄花,我们不讨论它。

2,SVN
SVN比较方便,编辑~/.subversion/servers文件即可:
[global]
http-proxy-host = <代理的ip或域名>
http-proxy-port = <代理端口>
http-proxy-username = <用户名,如果需要的话>
http-proxy-password = <密码,如果需要的话>

3,HG
HG更简单,因为它使用的是http协议,一个命令解决:
export http_proxy=http://<用户名>:<密码>@<ip>:<端口>

4,Git
Git可以使用两种协议,git协议和http,如果是后者,那么办法跟HG一样,如果是git,比较麻烦,但也不是不可解决:
先去下载一个协议转换小工具:http://www.meadowy.org/~gotoh/ssh/connect.c
编译之:gcc -o connect connect.c
将生成的connect放到可执行文件路径中,如/usr/bin

然后创建一个使用代理的脚本,假设是http-proxy-gw,注意加上可执行属性,内容如下:
#!/bin/sh
# Filename: ~/bin/http-proxy-gw
# This script connects to an HTTP proxy using connect.c
connect -H http://yourproxyaddress:proxyport $@

最后,配置git:
git config --global core.gitproxy "http-proxy-gw for xxx.yyy"
后面的xxx.yyy是域名后缀,比如,下载linux源码就可以是设置为kernel.org

 

 

 

在实验室想git点东东下来,折腾了会,算是基本可用了吧
man git-config 可以看到git支持的代理是依赖别的程序的
这里我使用的是一个别人写的代理小程序,见附件
配置步骤如下:
 
1. gcc -o connect connect.c
   mv connect ~/bin
2. 设置一个wrapper
   echo "/home/gigi/bin/connect -H proxy.bupt.edu.cn:8080 $@" >> ~/bin/proxy
   chmod +x ~/bin/proxy
这里我使用的是学校的代理 proxy.bupt.edu.cn,端口是8080
connect这个小程序还支持socket代理,用法是connect -S host:port
3. echo "export CONNECT_USER=bergwolf" >> .bashrc
   echo "export GIT_PROXY_COMMAND=proxy" >> .bashrc
connect程序从环境变量CONNECT_USER和CONNECT_PASSWORD
中读取用户名和密码,如果密码没有设置,在连接时会要求输入
GIT_PROXY_COMMAND是git默认使用的代理程序,也可以在.git/config中设置
 
到此git代理设置就完成了,试用一下:
[gigi-Ubuntu:bin]$git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git  
Initialized empty Git repository in /home/gigi/bin/e2fsprogs/.git/
Enter proxy authentication password for bergwolf@proxy.bupt.edu.cn:  
remote: Counting objects: 24006, done.
remote: Compressing objects: 100% (4701/4701), done.
ceiving objects:   1% (241/24006), 43.99 KiB | 56 KiB/s  
 

分享到:
评论

相关推荐

    SVN,HG,GIT命令对照.pdf

    SVN(Subversion)、HG(Mercurial)、GIT是三种广泛使用的版本控制系统,它们各自有不同的设计理念和命令集,尽管它们在执行相同或相似功能时具有一定的相似性,但直接命令对应关系并不严格存在。下面将详细介绍...

    ubuntu下RabbitVCS安装方法(SVN、GIT、Hg 工具)

    ubuntu下RabbitVCS安装方法。 适用于SVN、GIT、Hg 的客户端工具。 集成右键菜单

    vcs-reader:最小的Java库,用于读取VCS提交(git,hg,svn)

    Vcs阅读器 这是一个Java(和JVM语言)库,...从此处下载(wget,curl等) Maven: &lt; groupId&gt;org.vcsreader &lt; artifactId&gt;vcsreader &lt; version&gt;1.0.0 Gradle: repositories { mavenCentral() } dependenci

    linux-gitpromptGITSVN和HG模块的bash提示符

    `git-prompt`项目正是一款专为Git、Subversion(SVN)和Mercurial(HG)用户设计的Bash提示符模块,它能够提供丰富的信息,帮助开发者在终端中实时了解版本控制系统的状态。 标题“linux-gitprompt-GITSVN和HG模块...

    rapid:支持git,hg,svn的VCS帐户和设置管理器

    │ ├── git.png │ ├── hg.png │ ├── svn.svg │ └── vcs.txt ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── scripts │ ├── install.sh │ └── uninstall...

    progit-zh git官方文档-中文版

    - **分布式版本控制系统**:如`Git`、`Mercurial`(Hg)、`Bazaar`或`Darcs`等,每个开发者的工作站上都是一个完整的版本库,包括完整的历史记录。这种模式非常适合需要频繁交换代码的团队,同时具有更好的安全性。 ...

    Git⾯试真题(10题)

    - **分布式版本控制系统**:如Git、Mercurial (HG)。 #### 二、本地版本控制系统 1. **特点**: - 简单易用,许多操作系统内建支持。 - 适用于文本类型的文件管理,如系统配置文件。 - 缺乏远程操作能力,不...

    vc.vim:支持SVN,Git,HG和BZR

    vc.vim 用于Subversion(svn),GIT,HG和BZR存储库的VIM(VIM 7及更高版本)插件。 支持浏览存储库,工作副本,书签。 自动完成命令选项,文件,目录,回购网址注意:svnj.vim用户,将所有设置从svnj_替换为vc_ ##...

    经典Git学习资料ProGit

    - **迁移Mercurial仓库**:使用`hg-fast-export`工具将Hg仓库转换为Git仓库。 ##### 9.3 总结 本章介绍了如何将其他版本控制系统(如SVN、Mercurial)的仓库迁移到Git中。 #### 十、Git内部机制 ##### 10.1 ...

    git使用简介

    Git在资源管理上表现优异,以Django项目为例,Git的克隆版本相比其他版本控制系统(如bzr、hg、svn)占用空间更小,但同时包含了完整的项目历史版本,而不仅仅是最后一个版本。 #### 快照而非变更集 Git的另一个...

    Mercurial与TortoiseHg使用入门教程

    Unfuddle则提供200MB的免费空间,支持SVN和Git,适用于更小规模的项目。Google Code曾不支持Hg,但现在已添加了对Hg的支持,对于开源项目非常友好。 安装TortoiseHg后,可以通过设置“LANGUAGE”环境变量为“zh_CN...

    bash-prompt-vcs:在bash提示中显示git,Mercurial(hg)和Subversion(svn)工作树的状态作为环境信息

    Bash提示版本控制状态 在bash提示中显示 , 和工作树的状态作为环境信息。 安装 将放在某个地方,然后在您的.bashrc添加: if [ -f /path/to/bash-prompt-vcs.bash ] ; then ....fi 这将定义函数bpvcs_bash_prompt&#...

    git使用入门教程

    相比于集中式的版本控制系统如 SVN 或 HG,Git 提供了更高的灵活性和效率。在 Git 中,每次修改都会形成一个新的提交(commit),这些提交存储在本地仓库中,可以随时回溯到任何历史状态。 二、为什么选择 Git 1. ...

    Git 快速入门和最佳实践

    集中式版本控制系统的代表有CVS和SVN,而Git和Mercurial(Hg)属于分布式版本控制系统。分布式版本控制系统的特点是简单易用、功能强大,且具有良好的操作系统的支持。 Git的官方网址是***,其中还推荐了两本学习...

    Mac版Hg客户端

    在选择使用MacHg时,用户应了解Mercurial的基础知识,包括它的分布式特性、版本管理的核心概念以及与其他版本控制系统(如Git或SVN)的区别。 总的来说,MacHg为Mac用户提供了一个便捷的Mercurial版本控制工具,...

    TortoiseHg帮助指南

    除了Mercurial,TortoiseHg还能够与其他版本控制系统(VCS)协同工作,例如与Perforce、Subversion(SVN)和Git等系统的集成。这些集成可以帮助在不同VCS系统间转移代码,并使跨系统的工作流程变得可行。 最后,...

    SVN(mac版)软件

    SourceTree是Windows和Mac OS X下免费的Git和Hg客户端,支持创建、克隆、提交、push、pull 和合并等操作。

    版本管理系统--GIT官方中文教程

    - **与Subversion (SVN) 比较**:SVN也是集中式的版本控制系统,虽然比CVS先进,但在速度、灵活性等方面不如Git。此外,Git的分支管理更为灵活便捷。 - **与Mercurial (Hg) 比较**:Mercurial也是一款分布式版本控制...

    Git使用教程以及Sourcetree的使用

    SourceTree是一款免费的、跨平台的Git和Hg图形化客户端,能够简化Git的日常操作,提高开发效率。 ##### 配置客户端密钥 - 打开SourceTree,进入“工具”菜单下的“选项”。 - 在弹出的对话框中配置SSH密钥路径或...

    linux_scm的command

    常见的SCM工具有Git、SVN(Subversion)、Mercurial等。以下我们将详细探讨Linux SCM命令及其相关知识。 1. Git: Git是最流行的分布式SCM工具之一,由Linus Torvalds创建。Git命令行操作主要包括: - `git init`...

Global site tag (gtag.js) - Google Analytics