summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-11-15 23:35:40 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-11-15 23:35:40 -0500
commitec7afc5cbfba48bdd2f279ba25a7ebdfd0dcef78 (patch)
tree537a141aeb6d6a668ead0b8232c8cc0c33eadd54
parent8ac4d0446ee3ff3bf6e2e804ac373f774a09187f (diff)
downloadalembic-ec7afc5cbfba48bdd2f279ba25a7ebdfd0dcef78.tar.gz
cleanup
-rw-r--r--alembic/revision.py26
-rw-r--r--tests/test_revision.py17
2 files changed, 26 insertions, 17 deletions
diff --git a/alembic/revision.py b/alembic/revision.py
index b079927..885b53b 100644
--- a/alembic/revision.py
+++ b/alembic/revision.py
@@ -423,21 +423,15 @@ class RevisionMap(object):
limit_to_lower_branch = \
isinstance(lower, compat.string_types) and '@' in lower
- # TODO: rework the conditionals here to be easier
- # to follow
- if not limit_to_lower_branch or not requested_lowers:
- if not requested_lowers and limit_to_lower_branch:
- base_lowers = self.get_revisions(
- self._get_base_revisions(lower))
- lowers = base_lowers
- elif implicit_base or not requested_lowers:
- base_lowers = set(self.get_revisions(self.bases))
- base_lowers.difference_update(
- self._get_ancestor_nodes(requested_lowers))
- lowers = base_lowers.union(requested_lowers)
- else:
- base_lowers = set()
- lowers = requested_lowers
+ if limit_to_lower_branch:
+ base_lowers = self.get_revisions(
+ self._get_base_revisions(lower))
+ lowers = base_lowers
+ elif implicit_base or not requested_lowers:
+ base_lowers = set(self.get_revisions(self.bases))
+ base_lowers.difference_update(
+ self._get_ancestor_nodes(requested_lowers))
+ lowers = base_lowers.union(requested_lowers)
else:
base_lowers = set()
lowers = requested_lowers
@@ -487,8 +481,6 @@ class RevisionMap(object):
if not inclusive and rev in requested_lowers:
continue
- #if rev in base_lowers
- #if inclusive or rev not in lowers:
yield rev
diff --git a/tests/test_revision.py b/tests/test_revision.py
index 6dde218..53fb730 100644
--- a/tests/test_revision.py
+++ b/tests/test_revision.py
@@ -155,6 +155,17 @@ class NamedBranchTest(DownIterateTest):
['c', 'somelongername', 'b', 'a']
)
+ def test_iterate_named_head_to_base(self):
+ self._assert_iteration(
+ "ebranch@head", "base",
+ ['f', 'someothername', 'e', 'd']
+ )
+
+ self._assert_iteration(
+ "abranch@head", "base",
+ ['c', 'somelongername', 'b', 'a']
+ )
+
def test_iterate_head_to_version_specific_base(self):
self._assert_iteration(
"heads", "e@base",
@@ -166,6 +177,12 @@ class NamedBranchTest(DownIterateTest):
['c', 'somelongername', 'b', 'a']
)
+ def test_iterate_to_branch_at_rev(self):
+ self._assert_iteration(
+ "heads", "ebranch@d",
+ ['f', 'someothername', 'e', 'd']
+ )
+
def test_partial_id_resolve(self):
eq_(self.map.get_revision("ebranch@some").revision, "someothername")
eq_(self.map.get_revision("abranch@some").revision, "somelongername")