`

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

    Git权威指南PDF完整版

    2.10 代理SVN提交实现移动式办公/ 19 2.11 无处不在的分页器/ 20 2.12 快/ 21 第3章 Git的安装和使用/ 22 3.1 在Linux 下安装和使用 Git/ 22 3.1.1 包管理器方式安装/ 22 3.1.2 从源代码进行安装/ 23 3.1.3 从Git...

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

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

    Git权威指南

    第6篇介绍了版本库的迁移,包括如何从cvs、svn、hg等版本库迁移到git,以及git版本库整理等方面的内容。第7篇讲解了git的其他应用,包括etckeeper、gistore等的安装、配置和使用,以及补丁中的二进制文件和云存储等...

    Git权威指南【样张】

    第6篇介绍了版本库的迁移,包括如何从cvs、svn、hg等版本库迁移到git,以及git版本库整理等方面的内容。第7篇讲解了git的其他应用,包括etckeeper、gistore等的安装、配置和使用,以及补丁中的二进制文件和云存储等...

    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`等,每个开发者的工作站上都是一个完整的版本库,包括完整的历史记录。这种模式非常适合需要频繁交换代码的团队,同时具有更好的安全性。 ...

    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的另一个...

    Git权威指南(第二版)蒋鑫--整理目录版

    于是公司开始尝试使用分布式版本控制系统,首先采用的是Hg(Mercurial),后来发现多人协同使用Hg和MQ时出现困难,最终公司大胆采用了Git,并结合Topgit等工具进行代码管理,实现了代码库的最终迁移。 随着Git的...

    Git⾯试真题(10题)

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

    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系统间转移代码,并使跨系统的工作流程变得可行。 最后,...

    Mercurial与TortoiseHg使用入门教程

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

Global site tag (gtag.js) - Google Analytics