So Tired !_! 逆水行舟, 不进则退!

29Oct/12

Git – How to use .netrc file on windows to save user and password

Posted by Nick Xu

You must define:

  • environment variable %HOME%
  • put a _netrc file in %HOME%

If you are using Windows 7

run the cmd type this:

setx HOME %USERPROFILE% 

and the %HOME% will be set to 'C:\Users\"username"'

then go to it and make a file called '_netrc'

Note: for Windows, you need a '_netrc' file, not a '.netrc'.

Its content is quite standard (Replace the with your values):

machine <hostname1> 
login <login1> 
password <password1> 
machine <hostname2> 
login <login2> 
password <password2> 

Luke mentions in the comments:

Using the latest version of msysgit on Windows 7, I did not need to set the HOME environment variable. The _netrc file alone did the trick.

This is indeed what I mentioned in "Trying to “install” github, .ssh dir not there":
git-cmd.bat included in msysgit does set the %HOME% environment variable:

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH% @if not exist "%HOME%" @set HOME=%USERPROFILE% 

爱国者 believes in the comments that "it seems that it won't work for http protocol"

However, I answered that netrc is used by curl, and works for http protocol, as shown in this example(look for 'netrc' in the page): . Also used with http protocol here: "_netrc/.netrc alternative tocURL".


A common trap with with netrc support on Windows is that git will bypass using it if an origin https url specifies a user name.

For example, if your .git/config file contains:

[remote "origin"]
     fetch = +refs/heads/*:refs/remotes/origin/*
     url = https://bob@code.google.com/p/my-project/

Git will not resolve your credentials via _netrc, to fix this remove your username, like so:

[remote "origin"]
     fetch = +refs/heads/*:refs/remotes/origin/*
     url = https://code.google.com/p/my-project/
Filed under: 其它 No Comments
23Oct/12

用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器

Posted by Nick Xu

现在不用Git,都不好意思说自己是程序员。

当你想用Git,而源代码服务器是Windows系统时,你将面临一个问题:如何在Windows上搭建Git服务器?

看看这篇文章(Setting up a Msysgit Server with copSSH on Windows)中的配置步骤,你会忘而却步吗?你会感叹“Linux世界的精彩,Windows世界的无奈”?

但程序员的天性是解决问题并以此为乐。不管生活在哪个世界,解决问题才是王道。于是,有程序员解决了这个问题,用ASP.NET MVC写了一个开源的Git服务器程序——Bonobo Git Server

Bonobo Git Server基于.NET Framework 4.0+ASP.NET MVC 3开发,数据库用的是SQLite,Git部分用的是GitSharp - Git for .NET and Mono

运行Bonobo Git Server,只需要IIS+WebDAV(IIS 7.5自带WebDAV, IIS 7.0需要下载安装)。

下面简单分享一下安装配置步骤,该步骤经过实践检验,我们已经成功部署。

第一部分 Bonobo Git Server站点的安装与配置

1. 下载Bonobo Git Server并解压

下载地址:http://www.chodounsky.net/bonobo-git-server/

如果想看源代码,请在这里下载:https://github.com/jakubgarfield/Bonobo-Git-Server

2. 配置一个IIS站点(比如:git.cnblogs.com),指向Bonobo Git Server所在文件夹。

a) 应用程序池要以.NET Framework 4.0运行。

b) 要安装ASP.NET MVC3。

c) 如果服务器用的是X64的Windows,需要下载64位版本的System.Data.SQLite至bin文件夹替换32位版本的。

3. 通过浏览器访问上一步配置的站点,如下图:

4. 输入默认用户名admin与密码admin,进入下图页面:

5. 点击“Global Settings”,设置一下代码库的根目录,并设置好该目录的文件系统权限(需要有写权限):

6. 点击“Respositories” 》“Create new repository”,创建新的代码库:

7. 创建好之后,点击代码库的名称,就能查看该代码库的信息,比如最重要的信息——Git Repository Location。

8. 安装/配置WebDAV

安装

1) 如果是IIS 7.5(Windows 7, Windows Server 2008 R2),WebDAV是自带的,只要添加该组件即可。具体配置方法参见 Installing WebDAV on IIS 7.5

2) 如果是IIS 7.0,需要另外下载安装,请参见 Installing WebDAV on IIS 7.0 。

配置

添加一条Authoring Rule:

到此,Git 服务器站点的基本配置就完成了。

第二部分 Git客户端简要操作步骤

现在可以通过Git客户端提交代码了,这里用的是TortoiseGit。

1. 安装TortoiseGit,下载地址:http://code.google.com/p/tortoisegit/(需要先安装msysgit),VS2010插件可以使用Git Source Control Provider

2. 在将要放置代码的文件夹点击右键选择"Git Clone",在Url中输入代码库的地址,确定后输入默认用户名与密码,然后就开始Clone...出现如下画面表示Clone成功。

3. 向这个代码库文件夹添加代码文件,然后通过TortoiseGit的菜单[Git Commint -> "master"...”]提交代码(这个提交只是向本地的代码库提交,并没有提交至服务器,这也是Git与SVN的主要区别之一)。

4. 通过TortoiseGit > Push 提交至Git服务器。

第三部分  Git服务器的其他操作

  • 修改管理员密码,通过左侧的 "Users"链接进入用户管理界面进行修改。
  • 添加新用户并授权,管理员无法直创建帐户,需要通过注册页面先注册一个帐户(登录页面右上角有注册链接),然后在用户管理界面将该用户加入Administrator角色。
  • 如果遇到问题,可以查看App_Data中的错误日志文件Bonobo.Git.Server.Errors.log。
  • 由于是开源程序,有什么不合你意的地方,直接可以修改源代码。

部署过程中遇到的问题:

clone的时候总是提示授权失败,把代码下回来折腾了N久后才找到原因,IIS的授权管理设置,除了Anonymous Authentication允许,其它全部关闭即可,官方也没提到这个问题:(

Filed under: 其它, 点NET 2 Comments
   
site
site