Signed-off-by: Yao Zhao <zhaox...@umn.edu>
---
 branch.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 53 insertions(+), 2 deletions(-)

diff --git a/branch.c b/branch.c
index 723a36b..6432e27 100644
--- a/branch.c
+++ b/branch.c
@@ -53,7 +53,20 @@ void install_branch_config(int flag, const char *local, 
const char *origin, cons
        int remote_is_branch = starts_with(remote, "refs/heads/");
        struct strbuf key = STRBUF_INIT;
        int rebasing = should_setup_rebase(origin);
-
+       char** print_list = malloc(8 * sizeof(char*));
+       char* arg1=NULL;
+       char* arg2=NULL;
+       char* arg3=NULL;
+       int index=0;
+
+       print_list[7] = _("Branch %s set up to track remote branch %s from %s 
by rebasing.");
+       print_list[6] = _("Branch %s set up to track remote branch %s from 
%s.");
+       print_list[5] = _("Branch %s set up to track local branch %s by 
rebasing.");
+       print_list[4] = _("Branch %s set up to track local branch %s.");
+       print_list[3] = _("Branch %s set up to track remote ref %s by 
rebasing.");
+       print_list[2] = _("Branch %s set up to track remote ref %s.");
+       print_list[1] = _("Branch %s set up to track local ref %s by 
rebasing.");
+       print_list[0] = _("Branch %s set up to track local ref %s.");
        if (remote_is_branch
            && !strcmp(local, shortname)
            && !origin) {
@@ -77,7 +90,44 @@ void install_branch_config(int flag, const char *local, 
const char *origin, cons
        strbuf_release(&key);
 
        if (flag & BRANCH_CONFIG_VERBOSE) {
-               if (remote_is_branch && origin)
+               if(remote_is_branch)
+                               index += 4;
+               if(origin)
+                               index += 2;
+               if(rebasing)
+                               index += 1;
+               
+               if(index < 0 || index > 7)
+               {
+                       die("BUG: impossible combination of %d and %p",
+                           remote_is_branch, origin);
+               }
+
+               if(index <= 4) {
+                       arg1 = local;
+                       arg2 = remote;
+               }
+               else if(index > 6) {
+                       arg1 = local;
+                       arg2 = shortname;
+                       arg3 = origin;
+               }
+               else {
+                       arg1 = local;
+                       arg2 = shortname;
+               }
+
+               if(!arg3) {
+                       printf_ln(print_list[index],arg1,arg2);
+               }
+               else {
+                       printf_ln(print_list[index],arg1,arg2,arg3);
+               }
+
+               free(print_list);
+
+
+/*             if (remote_is_branch && origin)
                        printf_ln(rebasing ?
                                  _("Branch %s set up to track remote branch %s 
from %s by rebasing.") :
                                  _("Branch %s set up to track remote branch %s 
from %s."),
@@ -100,6 +150,7 @@ void install_branch_config(int flag, const char *local, 
const char *origin, cons
                else
                        die("BUG: impossible combination of %d and %p",
                            remote_is_branch, origin);
+*/
        }
 }
 
-- 
1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to