diff -Nru bzr-2.6.0+bzr6595/bzrlib/config.py bzr-2.6.0+bzr6602/bzrlib/config.py --- bzr-2.6.0+bzr6595/bzrlib/config.py 2014-01-23 19:00:51.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/config.py 2014-06-19 09:42:08.000000000 +0000 @@ -1488,7 +1488,7 @@ """Return per-user configuration directory as unicode string By default this is %APPDATA%/bazaar/2.0 on Windows, ~/.bazaar on Mac OS X - and Linux. On Linux, if there is a $XDG_CONFIG_HOME/bazaar directory, + and Linux. On Mac OS X and Linux, if there is a $XDG_CONFIG_HOME/bazaar directory, that will be used instead. TODO: Global option --config-dir to override this. @@ -1503,16 +1503,14 @@ # APPDATA, but hard to move. See bug 348640 for more. return osutils.pathjoin(base, 'bazaar', '2.0') if base is None: - # GZ 2012-02-01: What should OSX use instead of XDG if anything? - if sys.platform != 'darwin': - xdg_dir = osutils.path_from_environ('XDG_CONFIG_HOME') - if xdg_dir is None: - xdg_dir = osutils.pathjoin(osutils._get_home_dir(), ".config") - xdg_dir = osutils.pathjoin(xdg_dir, 'bazaar') - if osutils.isdir(xdg_dir): - trace.mutter( - "Using configuration in XDG directory %s." % xdg_dir) - return xdg_dir + xdg_dir = osutils.path_from_environ('XDG_CONFIG_HOME') + if xdg_dir is None: + xdg_dir = osutils.pathjoin(osutils._get_home_dir(), ".config") + xdg_dir = osutils.pathjoin(xdg_dir, 'bazaar') + if osutils.isdir(xdg_dir): + trace.mutter( + "Using configuration in XDG directory %s." % xdg_dir) + return xdg_dir base = osutils._get_home_dir() return osutils.pathjoin(base, ".bazaar") @@ -3561,7 +3559,6 @@ """ location_parts = self.location.rstrip('/').split('/') store = self.store - sections = [] # Later sections are more specific, they should be returned first for _, section in reversed(list(store.get_sections())): if section.id is None: @@ -4248,6 +4245,8 @@ def _set_config_option(self, name, value, directory, scope): conf = self._get_stack(directory, scope, write_access=True) conf.set(name, value) + # Explicitly save the changes + conf.store.save_changes() def _remove_config_option(self, name, directory, scope): if name is None: @@ -4256,6 +4255,8 @@ conf = self._get_stack(directory, scope, write_access=True) try: conf.remove(name) + # Explicitly save the changes + conf.store.save_changes() except KeyError: raise errors.NoSuchConfigOption(name) diff -Nru bzr-2.6.0+bzr6595/bzrlib/diff.py bzr-2.6.0+bzr6602/bzrlib/diff.py --- bzr-2.6.0+bzr6595/bzrlib/diff.py 2012-07-24 16:56:07.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/diff.py 2014-10-06 12:31:59.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2011 Canonical Ltd. +# Copyright (C) 2005-2014 Canonical Ltd. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -119,7 +119,7 @@ def _spawn_external_diff(diffcmd, capture_errors=True): - """Spawn the externall diff process, and return the child handle. + """Spawn the external diff process, and return the child handle. :param diffcmd: The command list to spawn :param capture_errors: Capture stderr as well as setting LANG=C @@ -154,6 +154,40 @@ return pipe +# diff style options as of GNU diff v3.2 +style_option_list = ['-c', '-C', '--context', + '-e', '--ed', + '-f', '--forward-ed', + '-q', '--brief', + '--normal', + '-n', '--rcs', + '-u', '-U', '--unified', + '-y', '--side-by-side', + '-D', '--ifdef'] + +def default_style_unified(diff_opts): + """Default to unified diff style if alternative not specified in diff_opts. + + diff only allows one style to be specified; they don't override. + Note that some of these take optargs, and the optargs can be + directly appended to the options. + This is only an approximate parser; it doesn't properly understand + the grammar. + + :param diff_opts: List of options for external (GNU) diff. + :return: List of options with default style=='unified'. + """ + for s in style_option_list: + for j in diff_opts: + if j.startswith(s): + break + else: + continue + break + else: + diff_opts.append('-u') + return diff_opts + def external_diff(old_filename, oldlines, new_filename, newlines, to_file, diff_opts): @@ -195,26 +229,7 @@ '--binary', ] - # diff only allows one style to be specified; they don't override. - # note that some of these take optargs, and the optargs can be - # directly appended to the options. - # this is only an approximate parser; it doesn't properly understand - # the grammar. - for s in ['-c', '-u', '-C', '-U', - '-e', '--ed', - '-q', '--brief', - '--normal', - '-n', '--rcs', - '-y', '--side-by-side', - '-D', '--ifdef']: - for j in diff_opts: - if j.startswith(s): - break - else: - continue - break - else: - diffcmd.append('-u') + diff_opts = default_style_unified(diff_opts) if diff_opts: diffcmd.extend(diff_opts) @@ -265,27 +280,25 @@ msg = 'exit code %d' % rc raise errors.BzrError('external diff failed with %s; command: %r' - % (rc, diffcmd)) + % (msg, diffcmd)) finally: oldtmpf.close() # and delete newtmpf.close() - # Clean up. Warn in case the files couldn't be deleted - # (in case windows still holds the file open, but not - # if the files have already been deleted) - try: - os.remove(old_abspath) - except OSError, e: - if e.errno not in (errno.ENOENT,): - warning('Failed to delete temporary file: %s %s', - old_abspath, e) - try: - os.remove(new_abspath) - except OSError: - if e.errno not in (errno.ENOENT,): - warning('Failed to delete temporary file: %s %s', - new_abspath, e) + + def cleanup(path): + # Warn in case the file couldn't be deleted (in case windows still + # holds the file open, but not if the files have already been + # deleted) + try: + os.remove(path) + except OSError, e: + if e.errno not in (errno.ENOENT,): + warning('Failed to delete temporary file: %s %s', path, e) + + cleanup(old_abspath) + cleanup(new_abspath) def get_trees_and_branches_to_diff_locked( diff -Nru bzr-2.6.0+bzr6595/bzrlib/doc_generate/autodoc_rstx.py bzr-2.6.0+bzr6602/bzrlib/doc_generate/autodoc_rstx.py --- bzr-2.6.0+bzr6595/bzrlib/doc_generate/autodoc_rstx.py 2011-12-19 13:23:58.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/doc_generate/autodoc_rstx.py 2014-05-08 01:28:12.000000000 +0000 @@ -131,7 +131,7 @@ topic_id = "%s-%s" % (topic, "help") filename = bzrlib.osutils.pathjoin(output_dir, topic_id + ".txt") f = open(filename, "w") - f.writelines(text) + f.write(text) f.close() return topic_id diff -Nru bzr-2.6.0+bzr6595/bzrlib/patches.py bzr-2.6.0+bzr6602/bzrlib/patches.py --- bzr-2.6.0+bzr6595/bzrlib/patches.py 2011-12-18 15:28:38.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/patches.py 2014-12-12 03:59:25.000000000 +0000 @@ -31,9 +31,10 @@ binary_files_re = 'Binary files (.*) and (.*) differ\n' + def get_patch_names(iter_lines): + line = iter_lines.next() try: - line = iter_lines.next() match = re.match(binary_files_re, line) if match is not None: raise BinaryFiles(match.group(1), match.group(2)) @@ -317,7 +318,6 @@ if isinstance(line, ContextLine): pos += 1 - def parse_patch(iter_lines, allow_dirty=False): ''' :arg iter_lines: iterable of lines to parse @@ -336,7 +336,7 @@ return patch -def iter_file_patch(iter_lines, allow_dirty=False): +def iter_file_patch(iter_lines, allow_dirty=False, keep_dirty=False): ''' :arg iter_lines: iterable of lines to parse for patches :kwarg allow_dirty: If True, allow comments and other non-patch text @@ -352,10 +352,15 @@ # (as allow_dirty does). regex = re.compile(binary_files_re) saved_lines = [] + dirty_head = [] orig_range = 0 beginning = True + for line in iter_lines: - if line.startswith('=== ') or line.startswith('*** '): + if line.startswith('=== '): + dirty_head.append(line) + continue + if line.startswith('*** '): continue if line.startswith('#'): continue @@ -369,14 +374,23 @@ # parse the patch beginning = False elif len(saved_lines) > 0: - yield saved_lines + if keep_dirty and len(dirty_head) > 0: + yield {'saved_lines': saved_lines, + 'dirty_head': dirty_head} + dirty_head = [] + else: + yield saved_lines saved_lines = [] elif line.startswith('@@'): hunk = hunk_from_header(line) orig_range = hunk.orig_range saved_lines.append(line) if len(saved_lines) > 0: - yield saved_lines + if keep_dirty and len(dirty_head) > 0: + yield {'saved_lines': saved_lines, + 'dirty_head': dirty_head} + else: + yield saved_lines def iter_lines_handle_nl(iter_lines): @@ -400,15 +414,24 @@ yield last_line -def parse_patches(iter_lines, allow_dirty=False): +def parse_patches(iter_lines, allow_dirty=False, keep_dirty=False): ''' :arg iter_lines: iterable of lines to parse for patches :kwarg allow_dirty: If True, allow text that's not part of the patch at selected places. This includes comments before and after a patch for instance. Default False. + :kwarg keep_dirty: If True, returns a dict of patches with dirty headers. + Default False. ''' - return [parse_patch(f.__iter__(), allow_dirty) for f in - iter_file_patch(iter_lines, allow_dirty)] + patches = [] + for patch_lines in iter_file_patch(iter_lines, allow_dirty, keep_dirty): + if 'dirty_head' in patch_lines: + patches.append({'patch': parse_patch( + patch_lines['saved_lines'], allow_dirty), + 'dirty_head': patch_lines['dirty_head']}) + else: + patches.append(parse_patch(patch_lines, allow_dirty)) + return patches def difference_index(atext, btext): diff -Nru bzr-2.6.0+bzr6595/bzrlib/plugins/launchpad/lp_api.py bzr-2.6.0+bzr6602/bzrlib/plugins/launchpad/lp_api.py --- bzr-2.6.0+bzr6595/bzrlib/plugins/launchpad/lp_api.py 2012-07-20 15:09:13.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/plugins/launchpad/lp_api.py 2014-09-12 10:16:41.000000000 +0000 @@ -23,6 +23,7 @@ # needed by a command that uses it. +import httplib2 import os import re import urlparse @@ -118,6 +119,8 @@ :return: The root `Launchpad` object from launchpadlib. """ + if proxy_info is None: + proxy_info = httplib2.proxy_info_from_environment('https') cache_directory = get_cache_directory() launchpad = Launchpad.login_with( 'bzr', _get_api_url(service), cache_directory, timeout=timeout, diff -Nru bzr-2.6.0+bzr6595/bzrlib/tests/test_config.py bzr-2.6.0+bzr6602/bzrlib/tests/test_config.py --- bzr-2.6.0+bzr6595/bzrlib/tests/test_config.py 2014-01-23 19:00:51.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/tests/test_config.py 2014-02-14 10:29:49.000000000 +0000 @@ -595,7 +595,7 @@ # subdirectory of $XDG_CONFIG_HOME def setUp(self): - if sys.platform in ('darwin', 'win32'): + if sys.platform == 'win32': raise tests.TestNotApplicable( 'XDG config dir not used on this platform') super(TestXDGConfigDir, self).setUp() diff -Nru bzr-2.6.0+bzr6595/bzrlib/tests/test_diff.py bzr-2.6.0+bzr6602/bzrlib/tests/test_diff.py --- bzr-2.6.0+bzr6595/bzrlib/tests/test_diff.py 2012-07-12 15:59:35.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/tests/test_diff.py 2014-10-02 05:50:48.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2011 Canonical Ltd +# Copyright (C) 2005-2014 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,7 +17,6 @@ import os from cStringIO import StringIO import subprocess -import sys import tempfile from bzrlib import ( @@ -32,12 +31,15 @@ tests, transform, ) -from bzrlib.symbol_versioning import deprecated_in -from bzrlib.tests import features, EncodingAdapter -from bzrlib.tests.blackbox.test_diff import subst_dates from bzrlib.tests import ( features, - ) + EncodingAdapter, +) +from bzrlib.tests.blackbox.test_diff import subst_dates +from bzrlib.tests.scenarios import load_tests_apply_scenarios + + +load_tests = load_tests_apply_scenarios def udiff_lines(old, new, allow_binary=False): @@ -63,6 +65,29 @@ return lines +class TestDiffOptions(tests.TestCase): + + def test_unified_added(self): + """Check for default style '-u' only if no other style specified + in 'diff-options'. + """ + # Verify that style defaults to unified, id est '-u' appended + # to option list, in the absence of an alternative style. + self.assertEqual(['-a', '-u'], diff.default_style_unified(['-a'])) + + +class TestDiffOptionsScenarios(tests.TestCase): + + scenarios = [(s, dict(style=s)) for s in diff.style_option_list] + style = None # Set by load_tests_apply_scenarios from scenarios + + def test_unified_not_added(self): + # Verify that for all valid style options, '-u' is not + # appended to option list. + ret_opts = diff.default_style_unified(diff_opts=["%s" % (self.style,)]) + self.assertEqual(["%s" % (self.style,)], ret_opts) + + class TestDiff(tests.TestCase): def test_add_nl(self): @@ -1391,7 +1416,7 @@ diff_obj._execute('old', 'new') self.assertEqual(output.getvalue().rstrip(), 'old new') - def test_excute_missing(self): + def test_execute_missing(self): diff_obj = diff.DiffFromTool(['a-tool-which-is-unlikely-to-exist'], None, None, None) self.addCleanup(diff_obj.finish) @@ -1471,7 +1496,6 @@ def test_encodable_filename(self): # Just checks file path for external diff tool. # We cannot change CPython's internal encoding used by os.exec*. - import sys diffobj = diff.DiffFromTool(['dummy', '@old_path', '@new_path'], None, None, None) for _, scenario in EncodingAdapter.encoding_scenarios: @@ -1489,7 +1513,6 @@ self.assert_(fullpath.startswith(diffobj._root + '/safe')) def test_unencodable_filename(self): - import sys diffobj = diff.DiffFromTool(['dummy', '@old_path', '@new_path'], None, None, None) for _, scenario in EncodingAdapter.encoding_scenarios: diff -Nru bzr-2.6.0+bzr6595/bzrlib/tests/test_patches.py bzr-2.6.0+bzr6602/bzrlib/tests/test_patches.py --- bzr-2.6.0+bzr6595/bzrlib/tests/test_patches.py 2010-05-20 18:23:17.000000000 +0000 +++ bzr-2.6.0+bzr6602/bzrlib/tests/test_patches.py 2014-12-12 03:59:25.000000000 +0000 @@ -58,10 +58,24 @@ # https://bugs.launchpad.net/bzr/+bug/502076 # https://code.launchpad.net/~toshio/bzr/allow-dirty-patches/+merge/18854 lines = ["diff -pruN commands.py", - "--- orig/commands.py", - "+++ mod/dommands.py"] + "--- orig/commands.py", + "+++ mod/dommands.py"] bits = parse_patches(iter(lines), allow_dirty=True) + def test_preserve_dirty_head(self): + """Parse a patch containing a dirty header, and preserve lines""" + lines = ["=== added directory 'foo/bar'\n", + "=== modified file 'orig/commands.py'\n", + "--- orig/commands.py\n", + "+++ mod/dommands.py\n"] + patches = parse_patches( + lines.__iter__(), allow_dirty=True, keep_dirty=True) + self.assertEqual(patches[0]['dirty_head'], + ["=== added directory 'foo/bar'\n", + "=== modified file 'orig/commands.py'\n"]) + self.assertEqual(patches[0]['patch'].get_header().splitlines(True), + ["--- orig/commands.py\n", "+++ mod/dommands.py\n"]) + def testValidPatchHeader(self): """Parse a valid patch header""" lines = "--- orig/commands.py\n+++ mod/dommands.py\n".split('\n') @@ -78,7 +92,7 @@ def testValidHunkHeader(self): """Parse a valid hunk header""" header = "@@ -34,11 +50,6 @@\n" - hunk = hunk_from_header(header); + hunk = hunk_from_header(header) self.assertEqual(hunk.orig_pos, 34) self.assertEqual(hunk.orig_range, 11) self.assertEqual(hunk.mod_pos, 50) @@ -88,7 +102,7 @@ def testValidHunkHeader2(self): """Parse a tricky, valid hunk header""" header = "@@ -1 +0,0 @@\n" - hunk = hunk_from_header(header); + hunk = hunk_from_header(header) self.assertEqual(hunk.orig_pos, 1) self.assertEqual(hunk.orig_range, 1) self.assertEqual(hunk.mod_pos, 0) @@ -117,7 +131,7 @@ self.makeMalformed("@@ -34,11 +50,6.5 @@\n") self.makeMalformed("@@ -34,11 +50,-6 @@\n") - def lineThing(self,text, type): + def lineThing(self, text, type): line = parse_line(text) self.assertIsInstance(line, type) self.assertEqual(str(line), text) @@ -146,7 +160,7 @@ i = difference_index(patchtext, pstr) if i is not None: print "%i: \"%s\" != \"%s\"" % (i, patchtext[i], pstr[i]) - self.assertEqual (patchtext, str(patch)) + self.assertEqual(patchtext, str(patch)) def testAll(self): """Test parsing a whole patch""" @@ -161,7 +175,7 @@ self.assertContainsRe(patches[0].oldname, '^bar\t') self.assertContainsRe(patches[0].newname, '^qux\t') self.assertContainsRe(str(patches[0]), - 'Binary files bar\t.* and qux\t.* differ\n') + 'Binary files bar\t.* and qux\t.* differ\n') def test_parse_binary_after_normal(self): patches = parse_patches(self.data_lines("binary-after-normal.patch")) @@ -170,7 +184,7 @@ self.assertContainsRe(patches[1].oldname, '^bar\t') self.assertContainsRe(patches[1].newname, '^qux\t') self.assertContainsRe(str(patches[1]), - 'Binary files bar\t.* and qux\t.* differ\n') + 'Binary files bar\t.* and qux\t.* differ\n') def test_roundtrip_binary(self): patchtext = ''.join(self.data_lines("binary.patch")) @@ -228,7 +242,6 @@ mod_lines = list(self.datafile(mod)) patched_file = IterableFile(iter_patched(orig_lines, patch)) - lines = [] count = 0 for patch_line in patched_file: self.assertEqual(patch_line, mod_lines[count]) @@ -239,7 +252,6 @@ binary_lines = self.data_lines('binary.patch') e = self.assertRaises(BinaryFiles, iter_patched, [], binary_lines) - def test_iter_patched_from_hunks(self): """Test a few patch files, and make sure they work.""" files = [ @@ -256,7 +268,6 @@ mod_lines = list(self.datafile(mod)) iter_patched = iter_patched_from_hunks(orig_lines, parsed.hunks) patched_file = IterableFile(iter_patched) - lines = [] count = 0 for patch_line in patched_file: self.assertEqual(patch_line, mod_lines[count]) diff -Nru bzr-2.6.0+bzr6595/debian/changelog bzr-2.6.0+bzr6602/debian/changelog --- bzr-2.6.0+bzr6595/debian/changelog 2014-12-02 21:47:33.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/changelog 2015-05-28 06:54:36.000000000 +0000 @@ -1,9 +1,33 @@ -bzr (2.6.0+bzr6595-6ubuntu1) vivid; urgency=medium +bzr (2.6.0+bzr6602-2ubuntu2) wily; urgency=medium + + * Disable two tests which are known to be unstable. Thanks Vincent Ladeuil! + + -- Martin Pitt Thu, 28 May 2015 08:54:02 +0200 + +bzr (2.6.0+bzr6602-2ubuntu1) wily; urgency=medium * Merge with Debian unstable. Remaining Ubuntu changes: - Drop non-main build dependencies on python-{meliae,lzma,medusa} - -- Martin Pitt Tue, 02 Dec 2014 22:46:38 +0100 + -- Martin Pitt Thu, 07 May 2015 13:12:58 +0200 + +bzr (2.6.0+bzr6602-2) unstable; urgency=medium + + * debian/copyright: Don't repeat text for GPL-2+. + * Upload to unstable. + + -- Jelmer Vernooij Sat, 25 Apr 2015 14:45:03 +0000 + +bzr (2.6.0+bzr6602-1) experimental; urgency=medium + + * Add patch 09_remove_generation_time: Removes generation time from + manpage, as it causes unreproducible builds. Closes: #782858 + * New upstream snapshot. + * Drop 04_autodoc_write patch; applied upstream. + * Team upload. + * Bump standards version to 3.9.6 (no changes). + + -- Jelmer Vernooij Sat, 18 Apr 2015 21:54:06 +0000 bzr (2.6.0+bzr6595-6) unstable; urgency=medium diff -Nru bzr-2.6.0+bzr6595/debian/control bzr-2.6.0+bzr6602/debian/control --- bzr-2.6.0+bzr6595/debian/control 2014-12-02 21:47:10.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/control 2015-05-07 11:12:56.000000000 +0000 @@ -4,7 +4,8 @@ Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian Bazaar Maintainers Uploaders: Wouter van Heyst , - Andrew Starr-Bochicchio + Andrew Starr-Bochicchio , + Jelmer Vernooij Build-Depends: ca-certificates, cython-dbg | python-pyrex, debhelper (>= 9), @@ -19,7 +20,7 @@ python-sphinx (>= 1.0.7+dfsg), python-subunit, python-testtools (>= 0.9.5~) -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 X-Python-Version: >= 2.6 Vcs-Bzr: http://anonscm.debian.org/bzr/pkg-bazaar/bzr/2.6 Vcs-Browser: http://bzr.debian.org/loggerhead/pkg-bazaar/bzr/2.6 diff -Nru bzr-2.6.0+bzr6595/debian/copyright bzr-2.6.0+bzr6602/debian/copyright --- bzr-2.6.0+bzr6595/debian/copyright 2014-04-27 21:43:49.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/copyright 2015-04-25 14:44:40.000000000 +0000 @@ -41,19 +41,3 @@ Aaron Bentley John Arbash Meinel License: GPL-2+ - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - . - On Debian systems, the full text of the GNU General Public License is available - in /usr/share/common-licenses/GPL-2. diff -Nru bzr-2.6.0+bzr6595/debian/patches/04_autodoc_write bzr-2.6.0+bzr6602/debian/patches/04_autodoc_write --- bzr-2.6.0+bzr6595/debian/patches/04_autodoc_write 2014-07-09 01:27:20.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/patches/04_autodoc_write 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Description: Write text to .write() rather than .writelines() -Author: Jelmer Vernooij -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=722091 -Status: not (yet) forwarded upstream - -=== modified file 'bzrlib/doc_generate/autodoc_rstx.py' ---- a/bzrlib/doc_generate/autodoc_rstx.py 2011-12-19 13:23:58 +0000 -+++ b/bzrlib/doc_generate/autodoc_rstx.py 2014-04-27 21:54:41 +0000 -@@ -131,7 +131,7 @@ - topic_id = "%s-%s" % (topic, "help") - filename = bzrlib.osutils.pathjoin(output_dir, topic_id + ".txt") - f = open(filename, "w") -- f.writelines(text) -+ f.write(text) - f.close() - return topic_id - - diff -Nru bzr-2.6.0+bzr6595/debian/patches/09_remove_generation_time bzr-2.6.0+bzr6602/debian/patches/09_remove_generation_time --- bzr-2.6.0+bzr6595/debian/patches/09_remove_generation_time 1970-01-01 00:00:00.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/patches/09_remove_generation_time 2015-03-14 23:45:07.000000000 +0000 @@ -0,0 +1,32 @@ +Description: Remove generation time from scripts; this causes unreproducible builds. +Origin: commit, revision id: jelmer@samba.org-20150314234401-vk8pqfi2zw549uxg +Author: Jelmer Vernooij +Last-Update: 2015-03-14 +Applied-Upstream: no +X-Bzr-Revision-Id: jelmer@samba.org-20150314234401-vk8pqfi2zw549uxg + +=== modified file 'bzrlib/doc_generate/autodoc_man.py' +--- old/bzrlib/doc_generate/autodoc_man.py 2012-03-16 13:46:56 +0000 ++++ new/bzrlib/doc_generate/autodoc_man.py 2015-03-14 23:44:01 +0000 +@@ -189,8 +189,6 @@ + .\\\" \"%(bzrcmd)s help commands\" + .\\\" \"%(bzrcmd)s help \" + .\\\" +-.\\\" Generation time: %(timestamp)s +-.\\\" + + .ie \\n(.g .ds Aq \\(aq + .el .ds Aq ' + +=== modified file 'bzrlib/doc_generate/autodoc_rstx.py' +--- old/bzrlib/doc_generate/autodoc_rstx.py 2014-05-08 01:28:12 +0000 ++++ new/bzrlib/doc_generate/autodoc_rstx.py 2015-03-14 23:44:01 +0000 +@@ -144,7 +144,6 @@ + .. %(bzrcmd)s help commands + .. %(bzrcmd)s help + .. +-.. Generation time: %(timestamp)s + + """ + + diff -Nru bzr-2.6.0+bzr6595/debian/patches/series bzr-2.6.0+bzr6602/debian/patches/series --- bzr-2.6.0+bzr6595/debian/patches/series 2014-09-27 17:31:57.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/patches/series 2015-04-18 21:56:49.000000000 +0000 @@ -1,7 +1,7 @@ 01_selftest_package 03_spurious_test_failure -04_autodoc_write 05_remove_gzip_test 06_win32_paths 07_shorten_test_names 08_disable_put_file_unicode +09_remove_generation_time diff -Nru bzr-2.6.0+bzr6595/debian/rules bzr-2.6.0+bzr6602/debian/rules --- bzr-2.6.0+bzr6595/debian/rules 2014-04-27 21:43:49.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/rules 2015-05-28 06:57:30.000000000 +0000 @@ -24,7 +24,7 @@ BZR_PLUGIN_PATH=-site:-user \ BZR_DISABLE_PLUGINS=launchpad \ PYTHONPATH=$(wildcard $(CURDIR)/build/lib.*-$(PYVERSION)) \ - $(CURDIR)/build/scripts-$(PYVERSION)/bzr selftest -v --parallel=fork + $(CURDIR)/build/scripts-$(PYVERSION)/bzr selftest -v --parallel=fork -x bzrlib.tests.test_http.TestBadStatusServer.test_http_get -x bzrlib.tests.test_http.TestBadStatusServer.test_http_has endif override_dh_auto_clean: diff -Nru bzr-2.6.0+bzr6595/debian/tests/testsuite bzr-2.6.0+bzr6602/debian/tests/testsuite --- bzr-2.6.0+bzr6595/debian/tests/testsuite 2014-04-27 21:43:49.000000000 +0000 +++ bzr-2.6.0+bzr6602/debian/tests/testsuite 2015-05-28 06:57:42.000000000 +0000 @@ -1,2 +1,2 @@ #!/bin/sh -bzr selftest -v --parallel=fork --no-plugins +bzr selftest -v --parallel=fork --no-plugins -x bzrlib.tests.test_http.TestBadStatusServer.test_http_get -x bzrlib.tests.test_http.TestBadStatusServer.test_http_has diff -Nru bzr-2.6.0+bzr6595/doc/developers/xdg_config_spec.txt bzr-2.6.0+bzr6602/doc/developers/xdg_config_spec.txt --- bzr-2.6.0+bzr6595/doc/developers/xdg_config_spec.txt 2010-11-27 05:38:41.000000000 +0000 +++ bzr-2.6.0+bzr6602/doc/developers/xdg_config_spec.txt 2014-02-14 10:29:49.000000000 +0000 @@ -2,9 +2,8 @@ =================================================================== Currently, Bazaar stores its configuration files and plugins under the -directory ~/.bazaar on unix installs. On Windows, this is -%APPDATA%/Bazaar/2.0 and on Mac OS X, the directory is ~/.bazaar. With the -XDG Base Directory specification +directory ~/.bazaar on unix installs. On Windows, this is %APPDATA%/Bazaar/2.0. +With the XDG Base Directory specification (http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html), many Linux and Unix platforms have tried to centralize configuration files under a specific directory referred to as $XDG_CONFIG_HOME. This has a default value @@ -13,10 +12,8 @@ Bazaar would like to be a good Unix citizen by using these standard locations for configuration files. As such, we should support that location, but not require it. Note that the following descriptions do not apply -to Windows or Mac OS X which should use their own native configuration -locations. (On Windows, we currently do this by working under %APPDATA%. The -Mac OS X equivalent would be ~/Library/Application Support/Bazaar but there is -also cultural support for ~/.bazaar on that platform.) +to Windows which should use their own native configuration +locations. (On Windows, we currently do this by working under %APPDATA%. * If $XDG_CONFIG_HOME/bazaar exists, use the files there for configuration, noting in the log that we are doing so. This allows individuals who would diff -Nru bzr-2.6.0+bzr6595/doc/en/release-notes/bzr-2.7.txt bzr-2.6.0+bzr6602/doc/en/release-notes/bzr-2.7.txt --- bzr-2.6.0+bzr6595/doc/en/release-notes/bzr-2.7.txt 2014-04-16 07:18:26.000000000 +0000 +++ bzr-2.6.0+bzr6602/doc/en/release-notes/bzr-2.7.txt 2014-12-15 20:24:42.000000000 +0000 @@ -26,6 +26,10 @@ .. Improvements to existing commands, especially improved performance or memory usage, or better results. +* bzrlib.patches.parse_patches can optionally return a list of 'dirty' + patch headers (prefixed with '==='). + (Kit Randel, #1400567) + Bug Fixes ********* @@ -59,6 +63,12 @@ .. Major internal changes, unlikely to be visible to users or plugin developers, but interesting for bzr developers. +Changed Behaviour +***************** + +* Also honor $XDG_CONFIG_HOME specification on Mac OS X platform. + (Fabien Meghazi) + Testing ******* @@ -66,6 +76,11 @@ suite. This can include new facilities for writing tests, fixes to spurious test failures and changes to the way things should be tested. +* Fix warnings on stderr caused by the atexit handler triggering for the + wrong reason: the 'config' command should explicitly save the changes when + modifying or removing an option and not rely on the atexit + handler. (Vincent Ladeuil, #1331999) + * Handle (minor) incompatible change in python 2.7.6 leading to test failures. Only tests are affected. (Vincent Ladeuil, #1303879)