Rev 1110: Merge upstream. in http://people.samba.org/bzr/jelmer/bzr-svn/cext
Jelmer Vernooij
jelmer at samba.org
Thu Jun 19 16:44:50 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-svn/cext
------------------------------------------------------------
revno: 1110
revision-id: jelmer at samba.org-20080619154449-08l9ffvcrj3p3xjp
parent: jelmer at samba.org-20080619151659-3qwqov4pv3aoqvti
parent: jelmer at samba.org-20080619153347-eysgz8ci9hvjr5r3
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: cext
timestamp: Thu 2008-06-19 17:44:49 +0200
message:
Merge upstream.
modified:
tests/__init__.py __init__.py-20060508151940-e9f4d914801a2535
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
wc.c wc.pyx-20080313142018-10l8l23vha2j9e6b-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
------------------------------------------------------------
revno: 950.3.184
revision-id: jelmer at samba.org-20080619153347-eysgz8ci9hvjr5r3
parent: jelmer at samba.org-20080619140637-nxobzdjoac3l6rkx
parent: jelmer at samba.org-20080619153326-z4fa3jgpyg5rbn02
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Thu 2008-06-19 17:33:47 +0200
message:
Merge use of own python bindings for wc.
added:
editor.c editor.c-20080602191336-frj7az1sdk13o1tw-1
editor.h editor.h-20080602191336-frj7az1sdk13o1tw-2
util.c util.c-20080531154025-s8ef6ej9tytsnkkw-1
util.h util.h-20080531154025-s8ef6ej9tytsnkkw-2
wc.c wc.pyx-20080313142018-10l8l23vha2j9e6b-1
modified:
errors.py errors.py-20061226172623-w1sbj8ynpo0eojqp-1
setup.py setup.py-20060502115218-86950492da22353f
tests/__init__.py __init__.py-20060508151940-e9f4d914801a2535
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
------------------------------------------------------------
revno: 950.9.3
revision-id: jelmer at samba.org-20080619153326-z4fa3jgpyg5rbn02
parent: jelmer at samba.org-20080619140810-f4ndo3wirlc2w7u2
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4-wc
timestamp: Thu 2008-06-19 17:33:26 +0200
message:
Cherrypick own Python bindings for workingcopy management.
removed:
wc.py wc.py-20080617201206-br2171i7qnc473mz-1
added:
editor.c editor.c-20080602191336-frj7az1sdk13o1tw-1
editor.h editor.h-20080602191336-frj7az1sdk13o1tw-2
util.c util.c-20080531154025-s8ef6ej9tytsnkkw-1
util.h util.h-20080531154025-s8ef6ej9tytsnkkw-2
wc.c wc.pyx-20080313142018-10l8l23vha2j9e6b-1
modified:
errors.py errors.py-20061226172623-w1sbj8ynpo0eojqp-1
setup.py setup.py-20060502115218-86950492da22353f
tests/__init__.py __init__.py-20060508151940-e9f4d914801a2535
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
------------------------------------------------------------
revno: 950.9.2
revision-id: jelmer at samba.org-20080619140810-f4ndo3wirlc2w7u2
parent: jelmer at samba.org-20080617201754-q2q3jak510dod9ac
parent: jelmer at samba.org-20080619140637-nxobzdjoac3l6rkx
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4-wc
timestamp: Thu 2008-06-19 16:08:10 +0200
message:
Merge upstream.
added:
delta.py delta.py-20080617225125-jeg43afui0czkuwk-1
modified:
Makefile makefile.other-20080311181537-5svhje3v1flh1n4f-1
__init__.py __init__.py-20051008155114-eae558e6cf149e1d
auth.py auth.py-20071209174622-w8d42k6nm5yhxvi8-1
commit.py commit.py-20060607190346-qvq128wgfubhhgm2-1
convert.py svn2bzr.py-20051018015439-cb4563bff29e632d
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
format.py format.py-20070917005147-94kb7zysotf82kqw-1
logwalker.py logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
mapping3/__init__.py __init__.py-20080502174630-9324zh25kka98vlw-1
ra.py ra.py-20080615005305-t5221niknu8rm6bt-1
revspec.py revspec.py-20071106211507-q4fz2en91yrmjjl8-1
tests/__init__.py __init__.py-20060508151940-e9f4d914801a2535
tests/test_branch.py test_branch.py-20060508162215-74ffeb5d608f8e20
tests/test_checkout.py test_checkout.py-20070101154110-eevkc29qj0q7udz5-1
tests/test_fetch.py test_fetch.py-20070624210302-luvgwjmlfysk5qeq-1
tests/test_workingtree.py test_workingtree.py-20060622191524-0di7bc3q1ckdbybb-1
transport.py transport.py-20060406231150-b3472d06b3a0818d
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
------------------------------------------------------------
revno: 950.9.1
revision-id: jelmer at samba.org-20080617201754-q2q3jak510dod9ac
parent: jelmer at samba.org-20080617195350-opqh4swky27h0ky7
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4-wc
timestamp: Tue 2008-06-17 22:17:54 +0200
message:
Add abstraction layer around working copy functions.
added:
wc.py wc.py-20080617201206-br2171i7qnc473mz-1
modified:
transport.py transport.py-20060406231150-b3472d06b3a0818d
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file 'tests/__init__.py'
--- a/tests/__init__.py 2008-06-17 22:36:11 +0000
+++ b/tests/__init__.py 2008-06-19 15:44:49 +0000
@@ -84,7 +84,6 @@
return self.open_local_bzrdir(repos_url, relpath)
-
def make_checkout(self, repos_url, relpath):
self.client_ctx.checkout(repos_url, relpath, "HEAD", "HEAD",
True, False)
=== modified file 'tree.py'
--- a/tree.py 2008-06-19 14:03:32 +0000
+++ b/tree.py 2008-06-19 15:44:49 +0000
@@ -261,7 +261,7 @@
self._repository = workingtree.branch.repository
def add_file_to_inv(relpath, id, revid, adm):
- (delta_props, props) = adm.get_prop_diffs(self.workingtree.abspath(relpath))
+ (propchanges, props) = adm.get_prop_diffs(self.workingtree.abspath(relpath).encode("utf-8"))
if props.has_key(properties.PROP_SPECIAL):
ie = self._inventory.add_path(relpath, 'symlink', id)
ie.symlink_target = open(self._abspath(relpath)).read()[len("link "):]
@@ -313,8 +313,7 @@
if entry.kind == core.NODE_DIR:
subwc = wc.WorkingCopy(adm,
- self.workingtree.abspath(subrelpath),
- False, 0, None)
+ self.workingtree.abspath(subrelpath))
try:
add_dir_to_inv(subrelpath, subwc, id)
finally:
=== modified file 'wc.c'
--- a/wc.c 2008-06-19 15:16:59 +0000
+++ b/wc.c 2008-06-19 15:44:49 +0000
@@ -70,7 +70,7 @@
static svn_error_t *py_ra_report_finish(void *baton, apr_pool_t *pool)
{
PyObject *self = (PyObject *)baton, *ret;
- ret = PyObject_CallFunction(self, "finish", "");
+ ret = PyObject_CallFunction(self, "finish", NULL);
if (ret == NULL)
return py_svn_error();
return NULL;
@@ -79,7 +79,7 @@
static svn_error_t *py_ra_report_abort(void *baton, apr_pool_t *pool)
{
PyObject *self = (PyObject *)baton, *ret;
- ret = PyObject_CallFunction(self, "abort", "");
+ ret = PyObject_CallFunction(self, "abort", NULL);
if (ret == NULL)
return py_svn_error();
return NULL;
@@ -138,7 +138,9 @@
}
static PyMemberDef entry_members[] = {
+ { "name", T_STRING, offsetof(EntryObject, entry.name), READONLY, NULL },
{ "copyfrom_url", T_STRING, offsetof(EntryObject, entry.copyfrom_url), READONLY, NULL },
+ { "copyfrom_rev", T_LONG, offsetof(EntryObject, entry.copyfrom_rev), READONLY, NULL },
{ "url", T_STRING, offsetof(EntryObject, entry.url), READONLY, NULL },
{ "repos", T_STRING, offsetof(EntryObject, entry.repos), READONLY, NULL },
{ "schedule", T_INT, offsetof(EntryObject, entry.schedule), READONLY, NULL },
@@ -350,7 +352,7 @@
apr_array_header_t *propchanges;
apr_hash_t *original_props;
AdmObject *admobj = (AdmObject *)self;
- svn_prop_t *el;
+ svn_prop_t el;
int i;
PyObject *py_propchanges, *py_orig_props;
@@ -364,9 +366,9 @@
path, admobj->adm, temp_pool));
py_propchanges = PyList_New(propchanges->nelts);
for (i = 0; i < propchanges->nelts; i++) {
- el = APR_ARRAY_IDX(propchanges, i, svn_prop_t *);
+ el = APR_ARRAY_IDX(propchanges, i, svn_prop_t);
PyList_SetItem(py_propchanges, i,
- Py_BuildValue("(ss#)", el->name, el->value->data, el->value->len));
+ Py_BuildValue("(ss#)", el.name, el.value->data, el.value->len));
}
py_orig_props = prop_hash_to_dict(original_props);
apr_pool_destroy(temp_pool);
@@ -443,7 +445,7 @@
Py_RETURN_NONE;
}
-static PyObject *adm_crawl_revisions(PyObject *self, PyObject *args, PyObject *kwargs)
+static PyObject *adm_crawl_revisions(PyObject *self, PyObject *args)
{
char *path;
PyObject *reporter;
@@ -452,22 +454,15 @@
apr_pool_t *temp_pool;
AdmObject *admobj = (AdmObject *)self;
svn_wc_traversal_info_t *traversal_info;
- char *kwnames[] = { "path", "reporter", "restore_files", "recurse", "use_commit_times", "notify_func", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "sO|bbbO", kwnames, &path,
- &reporter, &restore_files, &recurse,
- &use_commit_times, ¬ify_func))
+ if (!PyArg_ParseTuple(args, "sO|bbbO", &path, &reporter, &restore_files, &recurse, &use_commit_times,
+ ¬ify_func))
return NULL;
temp_pool = Pool();
if (temp_pool == NULL)
return NULL;
traversal_info = svn_wc_init_traversal_info(temp_pool);
- if (traversal_info == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
-
RUN_SVN_WITH_POOL(temp_pool, svn_wc_crawl_revisions2(path, admobj->adm,
&py_ra_reporter, (void *)reporter,
restore_files, recurse, use_commit_times,
@@ -603,7 +598,7 @@
{ "add", adm_add, METH_VARARGS, NULL },
{ "copy", adm_copy, METH_VARARGS, NULL },
{ "delete", adm_delete, METH_VARARGS, NULL },
- { "crawl_revisions", (PyCFunction)adm_crawl_revisions, METH_VARARGS|METH_KEYWORDS, NULL },
+ { "crawl_revisions", adm_crawl_revisions, METH_VARARGS, NULL },
{ "get_update_editor", adm_get_update_editor, METH_VARARGS, NULL },
{ "close", (PyCFunction)adm_close, METH_NOARGS, NULL },
{ "entry", (PyCFunction)adm_entry, METH_VARARGS, NULL },
@@ -660,6 +655,26 @@
return PyBool_FromLong(svn_wc_is_normal_prop(name));
}
+static PyObject *is_adm_dir(PyObject *self, PyObject *args)
+{
+ char *name;
+ apr_pool_t *pool;
+ svn_boolean_t ret;
+
+ if (!PyArg_ParseTuple(args, "s", &name))
+ return NULL;
+
+ pool = Pool();
+ if (pool == NULL)
+ return NULL;
+
+ ret = svn_wc_is_adm_dir(name, pool);
+
+ apr_pool_destroy(pool);
+
+ return PyBool_FromLong(ret);
+}
+
static PyObject *is_wc_prop(PyObject *self, PyObject *args)
{
char *name;
@@ -785,6 +800,7 @@
{ "get_default_ignores", get_default_ignores, METH_VARARGS, NULL },
{ "get_adm_dir", (PyCFunction)get_adm_dir, METH_NOARGS, NULL },
{ "get_pristine_copy_path", get_pristine_copy_path, METH_VARARGS, NULL },
+ { "is_adm_dir", is_adm_dir, METH_VARARGS, NULL },
{ "is_normal_prop", is_normal_prop, METH_VARARGS, NULL },
{ "is_entry_prop", is_entry_prop, METH_VARARGS, NULL },
{ "is_wc_prop", is_wc_prop, METH_VARARGS, NULL },
=== modified file 'workingtree.py'
--- a/workingtree.py 2008-06-19 15:16:59 +0000
+++ b/workingtree.py 2008-06-19 15:44:49 +0000
@@ -31,7 +31,7 @@
from bzrlib.transport.local import LocalTransport
from bzrlib.workingtree import WorkingTree, WorkingTreeFormat
-from bzrlib.plugins.svn import core, properties, wc
+from bzrlib.plugins.svn import core, properties
from bzrlib.plugins.svn.branch import SvnBranch
from bzrlib.plugins.svn.commit import _revision_id_to_svk_feature
from bzrlib.plugins.svn.convert import SvnConverter
@@ -47,6 +47,7 @@
from bzrlib.plugins.svn.transport import (SvnRaTransport, bzr_to_svn_url,
svn_config)
from bzrlib.plugins.svn.tree import SvnBasisTree
+from bzrlib.plugins.svn.wc import *
import os
import urllib
@@ -80,14 +81,14 @@
class SvnWorkingTree(WorkingTree):
"""WorkingTree implementation that uses a Subversion Working Copy for storage."""
def __init__(self, bzrdir, local_path, branch):
- version = wc.check_wc(local_path)
+ version = check_wc(local_path)
self._format = SvnWorkingTreeFormat(version)
self.basedir = local_path
assert isinstance(self.basedir, unicode)
self.bzrdir = bzrdir
self._branch = branch
self._get_wc()
- (min_rev, max_rev, switch, modified) = wc.revision_status(self.basedir, None, True, None)
+ (min_rev, max_rev, switch, modified) = revision_status(self.basedir, None, True, None)
assert min_rev >= 0 and max_rev >= 0, "min rev: (%d, %d)" % (min_rev, max_rev)
self.base_revnum = max_rev
self.base_tree = SvnBasisTree(self)
@@ -95,29 +96,30 @@
self.read_working_inventory()
- self.controldir = os.path.join(self.basedir, wc.get_adm_dir(), 'bzr')
+ self.controldir = os.path.join(self.basedir, get_adm_dir(),
+ 'bzr')
try:
os.makedirs(self.controldir)
os.makedirs(os.path.join(self.controldir, 'lock'))
except OSError:
pass
control_transport = bzrdir.transport.clone(urlutils.join(
- wc.get_adm_dir(), 'bzr'))
+ get_adm_dir(), 'bzr'))
self._control_files = LockableFiles(control_transport, 'lock', LockDir)
def get_ignore_list(self):
- ignore_globs = set([wc.get_adm_dir()])
+ ignore_globs = set([get_adm_dir()])
ignore_globs.update(ignores.get_runtime_ignores())
ignore_globs.update(ignores.get_user_ignores())
- def dir_add(adm, prefix, patprefix):
- ignorestr = adm.prop_get(properties.PROP_IGNORE,
+ def dir_add(wc, prefix, patprefix):
+ ignorestr = wc.prop_get(properties.PROP_IGNORE,
self.abspath(prefix).rstrip("/"))
if ignorestr is not None:
for pat in ignorestr.splitlines():
ignore_globs.add(urlutils.joinpath(patprefix, pat))
- entries = adm.entries_read(False)
+ entries = wc.entries_read(False)
for entry in entries:
if entry == "":
continue
@@ -128,7 +130,7 @@
subprefix = os.path.join(prefix, entry)
- subwc = wc.WorkingCopy(adm, self.abspath(subprefix))
+ subwc = WorkingCopy(wc, self.abspath(subprefix))
try:
dir_add(subwc, subprefix, urlutils.joinpath(patprefix, entry))
finally:
@@ -138,12 +140,12 @@
try:
dir_add(adm, "", ".")
finally:
- adm.close()
+ wc.close()
return ignore_globs
def is_control_filename(self, path):
- return wc.is_adm_dir(path)
+ return is_adm_dir(path)
def apply_inventory_delta(self, changes):
raise NotImplementedError(self.apply_inventory_delta)
@@ -175,19 +177,20 @@
# FIXME: Use to_file argument
# FIXME: Use verbose argument
assert isinstance(files, list)
- adm = self._get_wc(write_lock=True)
+ wc = self._get_wc(write_lock=True)
try:
for file in files:
- adm.delete(self.abspath(file))
+ wc.delete(self.abspath(file))
finally:
- adm.close()
+ wc.close()
for file in files:
self._change_fileid_mapping(None, file)
self.read_working_inventory()
def _get_wc(self, relpath="", write_lock=False):
- return wc.WorkingCopy(None, self.abspath(relpath).rstrip("/"), write_lock)
+ return WorkingCopy(None, self.abspath(relpath).rstrip("/"),
+ write_lock)
def _get_rel_wc(self, relpath, write_lock=False):
dir = os.path.dirname(relpath)
@@ -200,8 +203,7 @@
for entry in from_paths:
try:
to_wc = self._get_wc(to_dir, write_lock=True)
- to_wc.copy(self.abspath(entry),
- os.path.basename(entry), None, None)
+ to_wc.copy(self.abspath(entry), os.path.basename(entry))
finally:
to_wc.close()
try:
@@ -278,36 +280,36 @@
pass
def find_copies(url, relpath=""):
- adm = self._get_wc(relpath)
- entries = adm.entries_read(False)
+ wc = self._get_wc(relpath)
+ entries = wc.entries_read(False)
for entry in entries.values():
subrelpath = os.path.join(relpath, entry.name)
if entry.name == "" or entry.kind != 'directory':
if ((entry.copyfrom_url == url or entry.url == url) and
- not (entry.schedule in (wc.SCHEDULE_DELETE,
- wc.SCHEDULE_REPLACE))):
+ not (entry.schedule in (SCHEDULE_DELETE,
+ SCHEDULE_REPLACE))):
yield os.path.join(
self.branch.get_branch_path().strip("/"),
subrelpath)
else:
find_copies(subrelpath)
- adm.close()
+ wc.close()
def find_ids(entry, rootwc):
relpath = urllib.unquote(entry.url[len(entry.repos):].strip("/"))
- assert entry.schedule in (wc.SCHEDULE_NORMAL,
- wc.SCHEDULE_DELETE,
- wc.SCHEDULE_ADD,
- wc.SCHEDULE_REPLACE)
- if entry.schedule == wc.SCHEDULE_NORMAL:
+ assert entry.schedule in (SCHEDULE_NORMAL,
+ SCHEDULE_DELETE,
+ SCHEDULE_ADD,
+ SCHEDULE_REPLACE)
+ if entry.schedule == SCHEDULE_NORMAL:
assert entry.revision >= 0
# Keep old id
return self.path_to_file_id(entry.cmt_rev, entry.revision,
relpath)
- elif entry.schedule == wc.SCHEDULE_DELETE:
+ elif entry.schedule == SCHEDULE_DELETE:
return (None, None)
- elif (entry.schedule == wc.SCHEDULE_ADD or
- entry.schedule == wc.SCHEDULE_REPLACE):
+ elif (entry.schedule == SCHEDULE_ADD or
+ entry.schedule == SCHEDULE_REPLACE):
# See if the file this file was copied from disappeared
# and has no other copies -> in that case, take id of other file
if (entry.copyfrom_url and
@@ -322,7 +324,7 @@
def add_dir_to_inv(relpath, adm, parent_id):
assert isinstance(relpath, unicode)
- entries = adm.entries_read(False)
+ entries = wc.entries_read(False)
entry = entries[""]
assert parent_id is None or isinstance(parent_id, str), \
"%r is not a string" % parent_id
@@ -348,7 +350,7 @@
assert entry
if entry.kind == core.NODE_DIR:
- subwc = wc.WorkingCopy(adm, self.abspath(subrelpath))
+ subwc = WorkingCopy(wc, self.abspath(subrelpath))
try:
add_dir_to_inv(subrelpath, subwc, id)
finally:
@@ -392,7 +394,7 @@
revnum = self.branch.lookup_revision_id(
newrevtree.inventory[id].revision)
- adm.process_committed(self.abspath(path).rstrip("/"),
+ wc.process_committed(self.abspath(path).rstrip("/"),
False, revnum,
time_to_cstring(newrev.timestamp),
newrev.committer)
@@ -400,23 +402,23 @@
if newrevtree.inventory[id].kind != 'directory':
return
- entries = adm.entries_read(True)
+ entries = wc.entries_read(True)
for entry in entries:
if entry == "":
continue
- subwc = wc.WorkingCopy(adm, os.path.join(self.basedir, path, entry), write_lock=True)
+ subwc = WorkingCopy(wc, os.path.join(self.basedir, path, entry))
try:
update_settings(subwc, os.path.join(path, entry))
finally:
subwc.close()
# Set proper version for all files in the wc
- adm = self._get_wc(write_lock=True)
+ wc = self._get_wc(write_lock=True)
try:
- update_settings(adm, "")
+ update_settings(wc, "")
finally:
- adm.close()
+ wc.close()
self.base_revid = revid
def smart_add(self, file_list, recurse=True, action=None, save=True):
@@ -439,7 +441,7 @@
if not self.inventory.has_filename(f):
if save:
mutter('adding %r', file_path)
- adm.add(file_path, None, 0, None, None, None)
+ wc.add(file_path)
added.append(file_path)
if recurse and osutils.file_kind(file_path) == 'directory':
# Filter out ignored files and update ignored
@@ -452,7 +454,7 @@
ignored.setdefault(ignore_glob, []).append(c_path)
todo.append(c_path)
finally:
- adm.close()
+ wc.close()
if todo != []:
cadded, cignored = self.smart_add(todo, recurse, action, save)
added.extend(cadded)
@@ -472,7 +474,7 @@
adm = self._get_wc(os.path.dirname(f), write_lock=True)
try:
try:
- adm.add(os.path.join(self.basedir, f))
+ wc.add(os.path.join(self.basedir, f))
if ids is not None:
self._change_fileid_mapping(ids.next(), f, adm)
except SubversionException, (_, num):
@@ -482,7 +484,7 @@
raise NoSuchFile(path=f)
raise
finally:
- adm.close()
+ wc.close()
self.read_working_inventory()
def basis_tree(self):
@@ -536,7 +538,7 @@
existing = "".join(map(lambda (path, id): "%s\t%s\n" % (path, id), new_entries.items()))
if existing != "":
subwc.prop_set(SVN_PROP_BZR_FILEIDS, existing.encode("utf-8"), self.basedir)
- if adm is None:
+ if wc is None:
subwc.close()
def _get_base_branch_props(self):
@@ -545,7 +547,7 @@
def _get_new_file_ids(self, adm):
committed = self._get_base_branch_props().get(SVN_PROP_BZR_FILEIDS, "")
- existing = adm.prop_get(SVN_PROP_BZR_FILEIDS, self.basedir)
+ existing = wc.prop_get(SVN_PROP_BZR_FILEIDS, self.basedir)
if existing is None or committed == existing:
return {}
return dict(map(lambda x: str(x).split("\t"),
@@ -570,7 +572,7 @@
else:
bzr_merge = ""
- adm.prop_set(SVN_PROP_BZR_ANCESTRY+str(self.branch.mapping.scheme),
+ wc.prop_set(SVN_PROP_BZR_ANCESTRY+str(self.branch.mapping.scheme),
self._get_bzr_merges(self._get_base_branch_props()) + bzr_merge,
self.basedir)
@@ -583,11 +585,10 @@
except InvalidRevisionId:
pass
- adm.prop_set(SVN_PROP_SVK_MERGE,
- serialize_svk_features(svk_merges), self.basedir,
- False)
+ wc.prop_set(SVN_PROP_SVK_MERGE,
+ serialize_svk_features(svk_merges), self.basedir)
finally:
- adm.close()
+ wc.close()
def add_pending_merge(self, revid):
merges = self.pending_merges()
@@ -601,14 +602,14 @@
merged = self._get_bzr_merges(self._get_base_branch_props()).splitlines()
adm = self._get_wc()
try:
- merged_data = adm.prop_get(
+ merged_data = wc.prop_get(
SVN_PROP_BZR_ANCESTRY+str(self.branch.mapping.scheme), self.basedir)
if merged_data is None:
set_merged = []
else:
set_merged = merged_data.splitlines()
finally:
- adm.close()
+ wc.close()
assert (len(merged) == len(set_merged) or
len(merged)+1 == len(set_merged))
@@ -698,13 +699,13 @@
# Open related remote repository + branch
try:
- adm = wc.WorkingCopy(None, self.local_path)
+ wc = WorkingCopy(None, self.local_path)
except SubversionException, (msg, ERR_WC_UNSUPPORTED_FORMAT):
raise UnsupportedFormatError(msg, kind='workingtree')
try:
self.svn_url = adm.entry(self.local_path, True).url
finally:
- adm.close()
+ wc.close()
self.remote_transport = SvnRaTransport(self.svn_url)
self.remote_bzrdir = SvnRemoteAccess(self.remote_transport)
More information about the bazaar-commits
mailing list