diff --git a/.gopmfile b/.gopmfile
index 79f98e02b..296d02367 100644
--- a/.gopmfile
+++ b/.gopmfile
@@ -2,24 +2,23 @@
 path = github.com/gogits/gogs
 
 [deps]
+github.com/Unknwon/cae = 
+github.com/Unknwon/com = 
+github.com/Unknwon/goconfig = 
 github.com/codegangsta/cli = 
 github.com/go-martini/martini = 
-github.com/nfnt/resize = 
-github.com/lunny/xorm = 
 github.com/go-sql-driver/mysql = 
+github.com/go-xorm/xorm = 
+github.com/gogits/cache = 
+github.com/gogits/gfm = 
+github.com/gogits/git = 
+github.com/gogits/logs = 
+github.com/gogits/oauth2 = 
+github.com/gogits/session = 
 github.com/lib/pq = 
+github.com/nfnt/resize = 
 github.com/qiniu/log = 
 github.com/robfig/cron = 
-github.com/Unknwon/com = 
-github.com/Unknwon/cae = 
-github.com/Unknwon/goconfig = 
-github.com/gogits/logs = 
-github.com/gogits/binding = 
-github.com/gogits/git = 
-github.com/gogits/gfm = 
-github.com/gogits/cache = 
-github.com/gogits/session = 
-github.com/gogits/oauth2 = 
 
 [res]
 include = templates|public|conf
diff --git a/conf/app.ini b/conf/app.ini
index d805f822d..eb3d635f3 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -8,6 +8,7 @@ RUN_MODE = dev
 
 [repository]
 ROOT = 
+SCRIPT_TYPE = bash
 LANG_IGNS = Google Go|C|C++|Python|Ruby|C Sharp|Java|Objective-C
 LICENSES = Apache v2 License|GPL v2|MIT License|Affero GPL|Artistic License 2.0|BSD (3-Clause) License
 
@@ -65,6 +66,7 @@ SEND_BUFFER_LEN = 10
 SUBJECT = %(APP_NAME)s
 ; Mail server
 ; Gmail: smtp.gmail.com:587
+; QQ: smtp.qq.com:25
 HOST = 
 ; Mail from address
 FROM = 
diff --git a/gogs.go b/gogs.go
index 65180754b..bc807c466 100644
--- a/gogs.go
+++ b/gogs.go
@@ -19,7 +19,7 @@ import (
 // Test that go1.2 tag above is included in builds. main.go refers to this definition.
 const go12tag = true
 
-const APP_VER = "0.3.0.0418 Alpha"
+const APP_VER = "0.3.0.0419 Alpha"
 
 func init() {
 	base.AppVer = APP_VER
diff --git a/models/repo.go b/models/repo.go
index 6943d05e0..486720d27 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -413,7 +413,7 @@ func initRepository(f string, user *User, repo *Repository, initReadme bool, rep
 
 	// hook/post-update
 	if err := createHookUpdate(filepath.Join(repoPath, "hooks", "update"),
-		fmt.Sprintf("#!/usr/bin/env bash\n%s update $1 $2 $3\n",
+		fmt.Sprintf("#!/usr/bin/env %s\n%s update $1 $2 $3\n", base.ScriptType,
 			strings.Replace(appPath, "\\", "/", -1))); err != nil {
 		return err
 	}
diff --git a/modules/base/conf.go b/modules/base/conf.go
index c5d73bbc5..9dccc48f9 100644
--- a/modules/base/conf.go
+++ b/modules/base/conf.go
@@ -43,15 +43,17 @@ type Oauther struct {
 }
 
 var (
-	AppVer       string
-	AppName      string
-	AppLogo      string
-	AppUrl       string
-	IsProdMode   bool
-	Domain       string
-	SecretKey    string
-	RunUser      string
+	AppVer     string
+	AppName    string
+	AppLogo    string
+	AppUrl     string
+	IsProdMode bool
+	Domain     string
+	SecretKey  string
+	RunUser    string
+
 	RepoRootPath string
+	ScriptType   string
 
 	InstallLock bool
 
@@ -310,6 +312,7 @@ func NewConfigContext() {
 	if err = os.MkdirAll(RepoRootPath, os.ModePerm); err != nil {
 		qlog.Fatalf("Fail to create RepoRootPath(%s): %v\n", RepoRootPath, err)
 	}
+	ScriptType = Cfg.MustValue("repository", "SCRIPT_TYPE", "bash")
 }
 
 func NewBaseServices() {
diff --git a/routers/repo/repo.go b/routers/repo/repo.go
index 6422f0a32..f733378b3 100644
--- a/routers/repo/repo.go
+++ b/routers/repo/repo.go
@@ -340,6 +340,7 @@ func SettingPost(ctx *middleware.Context) {
 		}
 		ctx.Repo.Repository.Description = ctx.Query("desc")
 		ctx.Repo.Repository.Website = ctx.Query("site")
+		ctx.Repo.Repository.IsPrivate = ctx.Query("private") == "on"
 		ctx.Repo.Repository.IsGoget = ctx.Query("goget") == "on"
 		if err := models.UpdateRepository(ctx.Repo.Repository); err != nil {
 			ctx.Handle(404, "repo.SettingPost(update)", err)
diff --git a/templates/repo/setting.tmpl b/templates/repo/setting.tmpl
index 5572671c9..61621fe0e 100644
--- a/templates/repo/setting.tmpl
+++ b/templates/repo/setting.tmpl
@@ -65,6 +65,13 @@
 
                     <div class="form-group">
                         <div class="col-md-offset-3 col-md-9">
+                            <div class="checkbox">
+                                <label style="line-height: 15px;">
+                                    <input type="checkbox" name="private" {{if .Repository.IsPrivate}}checked{{end}}>
+                                    <strong>Make this repository private</strong>
+                                </label>
+                            </div>
+
                             <div class="checkbox">
                                 <label style="line-height: 15px;">
                                     <input type="checkbox" name="goget" {{if .Repository.IsGoget}}checked{{end}}>