You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2015/11/30 12:47:42 UTC
svn commit: r1717231 - in /subversion/branches/ra-git:
build/generator/gen_win_dependencies.py
subversion/libsvn_ra_git/ra_plugin.c subversion/libsvn_ra_git/reporter.c
Author: rhuijben
Date: Mon Nov 30 11:47:42 2015
New Revision: 1717231
URL: http://svn.apache.org/viewvc?rev=1717231&view=rev
Log:
On the libgit2 branch: Fix compilation and linking against libgit2 0.23
on Windows.
* subversion/libsvn_ra_git/ra_plugin.c
(split_url): Add argument. Update caller.
(svn_ra_git__open): Fix prototype. Update caller.
(svn_ra_git__get_file): Use proper type for filesize.
* subversion/libsvn_ra_git/reporter.c
(compare_files,
detect_blob_relatedness): Update caller.
* build/generator/gen_win_dependencies.py
(_find_libgit2): Fix library name.
Modified:
subversion/branches/ra-git/build/generator/gen_win_dependencies.py
subversion/branches/ra-git/subversion/libsvn_ra_git/ra_plugin.c
subversion/branches/ra-git/subversion/libsvn_ra_git/reporter.c
Modified: subversion/branches/ra-git/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/generator/gen_win_dependencies.py?rev=1717231&r1=1717230&r2=1717231&view=diff
==============================================================================
--- subversion/branches/ra-git/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/ra-git/build/generator/gen_win_dependencies.py Mon Nov 30 11:47:42 2015
@@ -1376,7 +1376,7 @@ class GenDependenciesBase(gen_base.Gener
inc_dir = os.path.join(self.libgit2_path, 'include')
lib_dir = os.path.join(self.libgit2_path, 'lib')
- lib_name = 'libgit2.lib'
+ lib_name = 'git2.lib'
else:
if (show_warnings):
print('WARNING: \'git2/version.h\' not found')
@@ -1407,7 +1407,7 @@ class GenDependenciesBase(gen_base.Gener
return
self._libraries['libgit2'] = SVNCommonLibrary('libgit2', inc_dir, lib_dir,
- 'libgit2.lib', libgit2_version)
+ lib_name, libgit2_version)
def _find_sqlite(self, show_warnings):
"Find the Sqlite library and version"
Modified: subversion/branches/ra-git/subversion/libsvn_ra_git/ra_plugin.c
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/libsvn_ra_git/ra_plugin.c?rev=1717231&r1=1717230&r2=1717231&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/libsvn_ra_git/ra_plugin.c (original)
+++ subversion/branches/ra-git/subversion/libsvn_ra_git/ra_plugin.c Mon Nov 30 11:47:42 2015
@@ -129,12 +129,13 @@ split_url(const char **remote_url,
svn_stringbuf_t *fs_path,
git_repository *repos,
const char *session_url,
+ git_remote_callbacks *callbacks,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_boolean_t found_remote = FALSE;
svn_stringbuf_t *remote_url_buf;
-
+
remote_url_buf = svn_stringbuf_create(make_git_url(session_url), scratch_pool);
while (!found_remote)
{
@@ -145,13 +146,12 @@ split_url(const char **remote_url,
/* Create an in-memory remote... */
git_err = git_remote_create_anonymous(&remote, repos,
- remote_url_buf->data,
- RA_GIT_DEFAULT_REFSPEC);
+ remote_url_buf->data);
if (git_err)
return svn_error_trace(svn_ra_git__wrap_git_error());
/* ... and try to connect to it. */
- git_err = git_remote_connect(remote, GIT_DIRECTION_FETCH);
+ git_err = git_remote_connect(remote, GIT_DIRECTION_FETCH, callbacks);
if (git_err)
{
apr_size_t slash_pos;
@@ -866,12 +866,15 @@ svn_ra_git__get_schemes(apr_pool_t *pool
static svn_error_t *
svn_ra_git__open(svn_ra_session_t *session,
const char **corrected_url,
- const char *repos_url,
+ const char *session_URL,
const svn_ra_callbacks2_t *callbacks,
void *callback_baton,
+ svn_auth_baton_t *auth_baton,
apr_hash_t *config,
- apr_pool_t *pool)
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
+ apr_pool_t *pool = result_pool;
const char *client_string;
svn_ra_git__session_baton_t *sess;
static volatile svn_atomic_t libgit_initialized = 0;
@@ -913,7 +916,7 @@ svn_ra_git__open(svn_ra_session_t *sessi
sess->fetch_done = FALSE;
sess->scratch_pool = svn_pool_create(session->pool);
- sess->session_url = apr_pstrdup(pool, repos_url);
+ sess->session_url = apr_pstrdup(pool, session_URL);
session->priv = sess;
/* Store the git repository within the working copy's admin area,
@@ -950,11 +953,20 @@ svn_ra_git__open(svn_ra_session_t *sessi
if (git_err)
return svn_error_trace(svn_ra_git__wrap_git_error());
+
+ remote_callbacks = apr_pcalloc(session->pool, sizeof(*remote_callbacks));
+ remote_callbacks->version = GIT_REMOTE_CALLBACKS_VERSION;
+ remote_callbacks->sideband_progress = remote_sideband_progress_cb;
+ remote_callbacks->transfer_progress = remote_transfer_progress_cb;
+ remote_callbacks->update_tips = remote_update_tips_cb;
+ remote_callbacks->payload = sess;
+
/* Split the session URL into a git remote URL and, possibly, a path within
* the repository (in sess->fs_path). */
svn_pool_clear(sess->scratch_pool);
SVN_ERR(split_url(&sess->remote_url, sess->fs_path, sess->repos,
- sess->session_url, session->pool, sess->scratch_pool));
+ sess->session_url, remote_callbacks,
+ session->pool, sess->scratch_pool));
/* Check if our remote already exists. */
git_err = git_remote_lookup(&sess->remote, sess->repos,
@@ -979,14 +991,6 @@ svn_ra_git__open(svn_ra_session_t *sessi
return svn_error_trace(svn_ra_git__wrap_git_error());
}
- remote_callbacks = apr_pcalloc(session->pool, sizeof(*remote_callbacks));
- remote_callbacks->version = GIT_REMOTE_CALLBACKS_VERSION;
- remote_callbacks->sideband_progress = remote_sideband_progress_cb;
- remote_callbacks->transfer_progress = remote_transfer_progress_cb;
- remote_callbacks->update_tips = remote_update_tips_cb;
- remote_callbacks->payload = sess;
- git_remote_set_callbacks(sess->remote, remote_callbacks);
-
git_err = git_revwalk_new(&sess->revwalk, sess->repos);
if (git_err)
return svn_error_trace(svn_ra_git__wrap_git_error());
@@ -2066,7 +2070,7 @@ svn_ra_git__get_file(svn_ra_session_t *s
if (stream)
{
- apr_size_t total_size;
+ svn_filesize_t total_size;
const char *data;
apr_size_t bytes_copied;
Modified: subversion/branches/ra-git/subversion/libsvn_ra_git/reporter.c
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/libsvn_ra_git/reporter.c?rev=1717231&r1=1717230&r2=1717231&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/libsvn_ra_git/reporter.c (original)
+++ subversion/branches/ra-git/subversion/libsvn_ra_git/reporter.c Mon Nov 30 11:47:42 2015
@@ -896,7 +896,7 @@ compare_files(svn_boolean_t *changed,
b.parent_is_repos_root = FALSE; /* can be set to anything for our purposes */
git_err = git_diff_blobs(blob, svn_relpath_basename(path, NULL),
other_blob, svn_relpath_basename(other_path, NULL),
- NULL, blob_relatedness_cb, NULL, NULL, &b);
+ NULL, blob_relatedness_cb, NULL, NULL, NULL, &b);
if (git_err)
{
if (git_err == GIT_EUSER)
@@ -1179,7 +1179,7 @@ detect_blob_relatedness(int *distance, g
{
b.parent_is_repos_root = TRUE;
git_err = git_diff_blobs(blob, "", other_blob, "", NULL,
- blob_relatedness_cb, NULL, NULL, &b);
+ blob_relatedness_cb, NULL, NULL, NULL, &b);
if (git_err)
{
if (git_err == GIT_EUSER)
@@ -1204,7 +1204,7 @@ detect_blob_relatedness(int *distance, g
return svn_error_trace(svn_ra_git__wrap_git_error());
/* Loop over changes, detect adds/deletes/mods of the blob in question. */
- git_err = git_diff_foreach(diff, blob_relatedness_cb, NULL, NULL, &b);
+ git_err = git_diff_foreach(diff, blob_relatedness_cb, NULL, NULL, NULL, &b);
if (git_err)
{
if (git_err == GIT_EUSER)