Update only if version requirement has changed

Previously, if any change was made to a line, it would update the line. This
includes whitespace changes around comments on the line. See
https://review.openstack.org/#/c/144782/ for an example of a unhelpful update.

Change-Id: I0d43c604c10e18c72810d42046d447fbf1deed10
This commit is contained in:
Ian Cordasco 2015-01-02 13:58:54 -06:00
parent aded3fa0c1
commit 2b588aeb69
1 changed files with 8 additions and 0 deletions

View File

@ -96,6 +96,12 @@ def _pass_through(pip):
pip.startswith('-f'))
def _functionally_equal(old_requirement, new_requirement):
old_require = req.InstallRequirement.from_line(old_requirement)
new_require = req.InstallRequirement.from_line(new_requirement)
return old_require.req == new_require.req
def _read(filename):
with open(filename, 'r') as f:
return f.read()
@ -156,6 +162,8 @@ def _sync_requirements_file(source_reqs, dev_reqs, dest_path,
if ((old_pip in dev_reqs) and (old_require.lower() ==
dev_reqs[old_pip])):
new_reqs.write("%s\n" % dev_reqs[old_pip])
elif _functionally_equal(old_require, source_reqs[old_pip]):
new_reqs.write(old_line)
else:
new_reqs.write("%s\n" % source_reqs[old_pip])
elif softupdate: