|  | @@ -131,6 +131,7 @@ func runServ(k *cli.Context) {
 | 
	
		
			
				|  |  |  	// access check
 | 
	
		
			
				|  |  |  	switch {
 | 
	
		
			
				|  |  |  	case isWrite:
 | 
	
		
			
				|  |  | +		println(user.Name, repoName, models.AU_WRITABLE)
 | 
	
		
			
				|  |  |  		has, err := models.HasAccess(user.Name, repoName, models.AU_WRITABLE)
 | 
	
		
			
				|  |  |  		if err != nil {
 | 
	
		
			
				|  |  |  			println("Inernel error:", err)
 | 
	
	
		
			
				|  | @@ -165,48 +166,14 @@ func runServ(k *cli.Context) {
 | 
	
		
			
				|  |  |  		return
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	/*
 | 
	
		
			
				|  |  | -	var rep *git.Repository
 | 
	
		
			
				|  |  | -	repoPath := models.RepoPath(user.Name, repoName)
 | 
	
		
			
				|  |  | -	if !isExist {
 | 
	
		
			
				|  |  | -		if isWrite {
 | 
	
		
			
				|  |  | -			_, err = models.CreateRepository(user, repoName, "", "", "", false, true)
 | 
	
		
			
				|  |  | -			if err != nil {
 | 
	
		
			
				|  |  | -				println("Create repository failed")
 | 
	
		
			
				|  |  | -				log.Error(err.Error())
 | 
	
		
			
				|  |  | -				return
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		rep, err = git.OpenRepository(repoPath)
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			println("OpenRepository failed:", err.Error())
 | 
	
		
			
				|  |  | -			log.Error(err.Error())
 | 
	
		
			
				|  |  | -			return
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	refs, err := rep.AllReferencesMap()
 | 
	
		
			
				|  |  | -	if err != nil {
 | 
	
		
			
				|  |  | -		println("Get All References failed:", err.Error())
 | 
	
		
			
				|  |  | -		log.Error(err.Error())
 | 
	
		
			
				|  |  | -		return
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -*/
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +	// for update use
 | 
	
		
			
				|  |  |  	os.Setenv("userName", user.Name)
 | 
	
		
			
				|  |  |  	os.Setenv("userId", strconv.Itoa(int(user.Id)))
 | 
	
		
			
				|  |  | -	//os.Setenv("repoId", repoId)
 | 
	
		
			
				|  |  |  	os.Setenv("repoName", repoName)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	gitcmd := exec.Command(verb, rRepo)
 | 
	
		
			
				|  |  |  	gitcmd.Dir = base.RepoRootPath
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	//var s string
 | 
	
		
			
				|  |  | -	//b := bytes.NewBufferString(s)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  	gitcmd.Stdout = os.Stdout
 | 
	
		
			
				|  |  | -	//gitcmd.Stdin = io.MultiReader(os.Stdin, b)
 | 
	
		
			
				|  |  |  	gitcmd.Stdin = os.Stdin
 | 
	
		
			
				|  |  |  	gitcmd.Stderr = os.Stderr
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -215,114 +182,4 @@ func runServ(k *cli.Context) {
 | 
	
		
			
				|  |  |  		log.Error(err.Error())
 | 
	
		
			
				|  |  |  		return
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	//if isRead {
 | 
	
		
			
				|  |  | -	//	return
 | 
	
		
			
				|  |  | -	//}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	// find push reference name
 | 
	
		
			
				|  |  | -	//var t = "ok refs/heads/"
 | 
	
		
			
				|  |  | -	//var i int
 | 
	
		
			
				|  |  | -	//var refname string
 | 
	
		
			
				|  |  | -	/*for {
 | 
	
		
			
				|  |  | -		l, err := b.ReadString('\n')
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			break
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		i = i + 1
 | 
	
		
			
				|  |  | -		l = l[:len(l)-1]
 | 
	
		
			
				|  |  | -		idx := strings.Index(l, t)
 | 
	
		
			
				|  |  | -		if idx > 0 {
 | 
	
		
			
				|  |  | -			refname = l[idx+len(t):]
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	*/
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	/*refs2, err := rep.AllReferencesMap()
 | 
	
		
			
				|  |  | -	for name, ref := range refs2 {
 | 
	
		
			
				|  |  | -		if ref2, ok := refs[name]; ok {
 | 
	
		
			
				|  |  | -			if ref.Oid.Equal(ref2.Oid) {
 | 
	
		
			
				|  |  | -				continue
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		refname = name
 | 
	
		
			
				|  |  | -		break
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	if refname == "" {
 | 
	
		
			
				|  |  | -		println("No find any reference name:", s)
 | 
	
		
			
				|  |  | -		return
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	var ref *git.Reference
 | 
	
		
			
				|  |  | -	var ok bool
 | 
	
		
			
				|  |  | -	var l *list.List
 | 
	
		
			
				|  |  | -	//log.Info("----", refname, "-----")
 | 
	
		
			
				|  |  | -	if ref, ok = refs[refname]; !ok {
 | 
	
		
			
				|  |  | -		// for new branch
 | 
	
		
			
				|  |  | -		refs, err = rep.AllReferencesMap()
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			println("Get All References failed:", err.Error())
 | 
	
		
			
				|  |  | -			log.Error(err.Error())
 | 
	
		
			
				|  |  | -			return
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		if ref, ok = refs[refname]; !ok {
 | 
	
		
			
				|  |  | -			log.Error("unknow reference name -", refname, "-", b.String())
 | 
	
		
			
				|  |  | -			return
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		l, err = ref.AllCommits()
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			println("Get All Commits failed:", err.Error())
 | 
	
		
			
				|  |  | -			log.Error(err.Error())
 | 
	
		
			
				|  |  | -			return
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	} else {
 | 
	
		
			
				|  |  | -		//log.Info("----", ref, "-----")
 | 
	
		
			
				|  |  | -		var last *git.Commit
 | 
	
		
			
				|  |  | -		//log.Info("00000", ref.Oid.String())
 | 
	
		
			
				|  |  | -		last, err = ref.LastCommit()
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			println("Get last commit failed:", err.Error())
 | 
	
		
			
				|  |  | -			log.Error(err.Error())
 | 
	
		
			
				|  |  | -			return
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		ref2, err := rep.LookupReference(ref.Name)
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			println("look up reference failed:", err.Error())
 | 
	
		
			
				|  |  | -			log.Error(err.Error())
 | 
	
		
			
				|  |  | -			return
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		//log.Info("11111", ref2.Oid.String())
 | 
	
		
			
				|  |  | -		before, err := ref2.LastCommit()
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			println("Get last commit failed:", err.Error())
 | 
	
		
			
				|  |  | -			log.Error(err.Error())
 | 
	
		
			
				|  |  | -			return
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		//log.Info("----", before.Id(), "-----", last.Id())
 | 
	
		
			
				|  |  | -		l = ref.CommitsBetween(before, last)
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	commits := make([][]string, 0)
 | 
	
		
			
				|  |  | -	var maxCommits = 3
 | 
	
		
			
				|  |  | -	for e := l.Front(); e != nil; e = e.Next() {
 | 
	
		
			
				|  |  | -		commit := e.Value.(*git.Commit)
 | 
	
		
			
				|  |  | -		commits = append(commits, []string{commit.Id().String(), commit.Message()})
 | 
	
		
			
				|  |  | -		if len(commits) >= maxCommits {
 | 
	
		
			
				|  |  | -			break
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	if err = models.CommitRepoAction(user.Id, user.Name,
 | 
	
		
			
				|  |  | -		repo.Id, repoName, refname, &base.PushCommits{l.Len(), commits}); err != nil {
 | 
	
		
			
				|  |  | -		log.Error("runUpdate.models.CommitRepoAction: %v", err, commits)
 | 
	
		
			
				|  |  | -	} else {
 | 
	
		
			
				|  |  | -		c := exec.Command("git", "update-server-info")
 | 
	
		
			
				|  |  | -		c.Dir = repoPath
 | 
	
		
			
				|  |  | -		err := c.Run()
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			log.Error("update-server-info: %v", err)
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	}*/
 | 
	
		
			
				|  |  |  }
 |