comparison cmdline/org/tmatesoft/hg/console/Remote.java @ 179:da426c2fe1ec

Support for changegroup wire command
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 06 Apr 2011 02:50:26 +0200
parents 62665d8f0686
children 981f9f50bb6c
comparison
equal deleted inserted replaced
178:62665d8f0686 179:da426c2fe1ec
93 public static void main(String[] args) throws Exception { 93 public static void main(String[] args) throws Exception {
94 ConfigFile cfg = new Internals().newConfigFile(); 94 ConfigFile cfg = new Internals().newConfigFile();
95 cfg.addLocation(new File(System.getProperty("user.home"), ".hgrc")); 95 cfg.addLocation(new File(System.getProperty("user.home"), ".hgrc"));
96 String svnkitServer = cfg.getSection("paths").get("svnkit"); 96 String svnkitServer = cfg.getSection("paths").get("svnkit");
97 // URL url = new URL(svnkitServer + "?cmd=branches&nodes=30bd389788464287cee22ccff54c330a4b715de5"); 97 // URL url = new URL(svnkitServer + "?cmd=branches&nodes=30bd389788464287cee22ccff54c330a4b715de5");
98 URL url = new URL(svnkitServer + "?cmd=between"); 98 // URL url = new URL(svnkitServer + "?cmd=between");
99 // URL url = new URL(svnkitServer + "?cmd=changegroup&roots=" + Nodeid.NULL.toString()); 99 URL url = new URL(svnkitServer + "?cmd=changegroup&roots=71ddbf8603e8e09d54ac9c5fe4bb5ae824589f1d");
100 // URL url = new URL("http://localhost:8000/" + "?cmd=between"); 100 // URL url = new URL("http://localhost:8000/" + "?cmd=between");
101 // URL url = new URL(svnkitServer + "?cmd=stream_out"); 101 // URL url = new URL(svnkitServer + "?cmd=stream_out");
102 102
103 SSLContext sslContext = SSLContext.getInstance("SSL"); 103 SSLContext sslContext = SSLContext.getInstance("SSL");
104 class TrustEveryone implements X509TrustManager { 104 class TrustEveryone implements X509TrustManager {
123 // HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 123 // HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
124 urlConnection.setRequestProperty("User-Agent", "jhg/0.1.0"); 124 urlConnection.setRequestProperty("User-Agent", "jhg/0.1.0");
125 urlConnection.setRequestProperty("Accept", "application/mercurial-0.1"); 125 urlConnection.setRequestProperty("Accept", "application/mercurial-0.1");
126 urlConnection.setRequestProperty("Authorization", "Basic " + authInfo); 126 urlConnection.setRequestProperty("Authorization", "Basic " + authInfo);
127 urlConnection.setSSLSocketFactory(sslContext.getSocketFactory()); 127 urlConnection.setSSLSocketFactory(sslContext.getSocketFactory());
128 byte[] body = "pairs=f5aed108754e817d2ca374d1a4f6daf1218dcc91-9429c7bd1920fab164a9d2b621d38d57bcb49ae0".getBytes(); 128 // byte[] body = "pairs=f5aed108754e817d2ca374d1a4f6daf1218dcc91-9429c7bd1920fab164a9d2b621d38d57bcb49ae0".getBytes();
129 urlConnection.setRequestMethod("POST"); 129 // urlConnection.setRequestMethod("POST");
130 urlConnection.setRequestProperty("Content-Length", String.valueOf(body.length)); 130 // urlConnection.setRequestProperty("Content-Length", String.valueOf(body.length));
131 urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 131 // urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
132 urlConnection.setDoOutput(true); 132 // urlConnection.setDoOutput(true);
133 urlConnection.setDoInput(true); 133 // urlConnection.setDoInput(true);
134 // urlConnection.connect(); 134 urlConnection.connect();
135 OutputStream os = urlConnection.getOutputStream(); 135 // OutputStream os = urlConnection.getOutputStream();
136 os.write(body); 136 // os.write(body);
137 os.flush(); 137 // os.flush();
138 os.close(); 138 // os.close();
139 System.out.println("Query:" + url.getQuery()); 139 System.out.println("Query:" + url.getQuery());
140 System.out.println("Response headers:"); 140 System.out.println("Response headers:");
141 final Map<String, List<String>> headerFields = urlConnection.getHeaderFields(); 141 final Map<String, List<String>> headerFields = urlConnection.getHeaderFields();
142 for (String s : headerFields.keySet()) { 142 for (String s : headerFields.keySet()) {
143 System.out.printf("%s: %s\n", s, urlConnection.getHeaderField(s)); 143 System.out.printf("%s: %s\n", s, urlConnection.getHeaderField(s));
144 } 144 }
145 System.out.printf("Content type is %s and its length is %d\n", urlConnection.getContentType(), urlConnection.getContentLength()); 145 System.out.printf("Content type is %s and its length is %d\n", urlConnection.getContentType(), urlConnection.getContentLength());
146 InputStream is = urlConnection.getInputStream(); 146 InputStream is = urlConnection.getInputStream();
147 // 147 //
148 dump(is, -1); // simple dump, any cmd 148 // dump(is, -1); // simple dump, any cmd
149 // writeBundle(is, false, "HG10GZ"); // cmd=changegroup 149 writeBundle(is, false, "HG10GZ"); // cmd=changegroup
150 //writeBundle(is, true, "" or "HG10UN"); 150 //writeBundle(is, true, "" or "HG10UN");
151 // 151 //
152 urlConnection.disconnect(); 152 urlConnection.disconnect();
153 // 153 //
154 } 154 }