Code

Make pull() take some implicit data as explicit arguments
authorPetr Baudis <pasky@suse.cz>
Thu, 27 Jul 2006 21:56:14 +0000 (23:56 +0200)
committerJunio C Hamano <junkio@cox.net>
Fri, 28 Jul 2006 02:33:48 +0000 (19:33 -0700)
Currently it's a bit weird that pull() takes a single argument
describing the commit but takes the write_ref from a global variable.
This makes it take that as a parameter as well, which might be nicer
for the libification in the future, but especially it will make for
nicer code when we implement pull()ing multiple commits at once.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
fetch.c
fetch.h
http-fetch.c
local-fetch.c
ssh-fetch.c

diff --git a/fetch.c b/fetch.c
index 989d7a47884ec7bac05d329baeb97bdb12b7b22e..3255cc62507e18b7d7da5cbf26a1238402a93314 100644 (file)
--- a/fetch.c
+++ b/fetch.c
@@ -8,9 +8,6 @@
 #include "blob.h"
 #include "refs.h"
 
-const char *write_ref = NULL;
-const char *write_ref_log_details = NULL;
-
 int get_tree = 0;
 int get_history = 0;
 int get_all = 0;
@@ -213,7 +210,8 @@ static int mark_complete(const char *path, const unsigned char *sha1)
        return 0;
 }
 
-int pull(char *target)
+int pull(char *target, const char *write_ref,
+         const char *write_ref_log_details)
 {
        struct ref_lock *lock = NULL;
        unsigned char sha1[20];
diff --git a/fetch.h b/fetch.h
index 841bb1af9cab0c19dda3f0cb5956edaec22f9d3a..7bda355bc1ce8f345b926c129bf7b60e48a8ec4f 100644 (file)
--- a/fetch.h
+++ b/fetch.h
@@ -22,12 +22,6 @@ extern void prefetch(unsigned char *sha1);
  */
 extern int fetch_ref(char *ref, unsigned char *sha1);
 
-/* If set, the ref filename to write the target value to. */
-extern const char *write_ref;
-
-/* If set additional text will appear in the ref log. */
-extern const char *write_ref_log_details;
-
 /* Set to fetch the target tree. */
 extern int get_tree;
 
@@ -46,6 +40,9 @@ extern int get_recover;
 /* Report what we got under get_verbosely */
 extern void pull_say(const char *, const char *);
 
-extern int pull(char *target);
+/* If write_ref is set, the ref filename to write the target value to. */
+/* If write_ref_log_details is set, additional text will appear in the ref log. */
+extern int pull(char *target, const char *write_ref,
+               const char *write_ref_log_details);
 
 #endif /* PULL_H */
index dc286b79f614a1e2c9ef2c21c2cc198bab973843..963d439f822e6984560db47a6f4492c1cb8bc455 100644 (file)
@@ -1216,6 +1216,7 @@ int fetch_ref(char *ref, unsigned char *sha1)
 
 int main(int argc, char **argv)
 {
+       const char *write_ref = NULL;
        char *commit_id;
        char *url;
        char *path;
@@ -1250,7 +1251,6 @@ int main(int argc, char **argv)
        }
        commit_id = argv[arg];
        url = argv[arg + 1];
-       write_ref_log_details = url;
 
        http_init();
 
@@ -1268,7 +1268,7 @@ int main(int argc, char **argv)
                        alt->path_len = strlen(path);
        }
 
-       if (pull(commit_id))
+       if (pull(commit_id, write_ref, url))
                rc = 1;
 
        http_cleanup();
index a05ac16cd03df8a07fd51b3b6df7735141152065..452b83396c89f3f0baa6447b09c77c13327d2f5f 100644 (file)
@@ -204,6 +204,7 @@ static const char local_pull_usage[] =
  */
 int main(int argc, char **argv)
 {
+       const char *write_ref = NULL;
        char *commit_id;
        int arg = 1;
 
@@ -240,9 +241,8 @@ int main(int argc, char **argv)
                usage(local_pull_usage);
        commit_id = argv[arg];
        path = argv[arg + 1];
-       write_ref_log_details = path;
 
-       if (pull(commit_id))
+       if (pull(commit_id, write_ref, path))
                return 1;
 
        return 0;
index a8a6cfbb30ed5152afd56318dc1e697ba0beacc2..aef3aa4a0578c0b6c45fa20e3558e46bea4fd225 100644 (file)
@@ -123,6 +123,7 @@ static const char ssh_fetch_usage[] =
   " [-c] [-t] [-a] [-v] [--recover] [-w ref] commit-id url";
 int main(int argc, char **argv)
 {
+       const char *write_ref = NULL;
        char *commit_id;
        char *url;
        int arg = 1;
@@ -159,7 +160,6 @@ int main(int argc, char **argv)
        }
        commit_id = argv[arg];
        url = argv[arg + 1];
-       write_ref_log_details = url;
 
        if (setup_connection(&fd_in, &fd_out, prog, url, arg, argv + 1))
                return 1;
@@ -167,7 +167,7 @@ int main(int argc, char **argv)
        if (get_version())
                return 1;
 
-       if (pull(commit_id))
+       if (pull(commit_id, write_ref, url))
                return 1;
 
        return 0;