/breezy/3.1

To get this branch, use:
bzr branch https://code.breezy-vcs.org/breezy/3.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
####################
Breezy Release Notes
####################

.. toctree::
   :maxdepth: 1

brz 3.1.1
#########

:Codename: TBD
:3.1.1: UNRELEASED

External Compatibility Breaks
*****************************

.. These may require users to change the way they use Breezy.


New Features
************

.. New commands, options, etc that users may wish to try out.


Improvements
************

.. Improvements to existing commands, especially improved performance
   or memory usage, or better results.

 * Permission denied errors from GitLab during push are now properly
   recognized. (Jelmer Vernooij)

 * Support rename and copy tracking when accessing Git
   repositories. (Jelmer Vernooij, #1760740)

 * A new method ``MergeProposal.get_source_revision`` has been added.
   (Jelmer Vernooij)

 * Add support for HTTP response code 308. (Jelmer Vernooij)

 * Handle non-utf8 characters in Git repositories by surrogate escaping
   them.  (Jelmer Vernooij, #1489872)

 * ``BzrDir.sprout`` now correctly handles the ``revision_id``
   argument when ``source_branch`` is None. (Jelmer Vernooij)

 * Warn when loading a plugin that is broken, but support
   ``suppress_warnings=load_plugin_failure`` to suppress it.
   (Jelmer Vernooij, #1882528)

 * Add a basic ``svn:`` revision spec. Currently this doesn't work,
   but it prevents the DWIM revision specifier from treating "svn:"
   as a URL. (Jelmer Vernooij)

Bug Fixes
*********

.. Fixes for situations where brz would previously crash or give incorrect
   or undesirable results.

 * Don't require ``ctypes.pythonapi`` to exist, as it's missing on newer
   versions of Pypy3. (Jelmer Vernooij)

 * Prevent exceptions during commit when quilt is not installed but
   the tree contains quilt patches. (Jelmer Vernooij)

 * Support pushing to Git repositories that do not yet exist,
   such as is the case on Launchpad repositories.
   (Jelmer Vernooij)

Documentation
*************

.. Improved or updated documentation.

API Changes
***********

.. Changes that may require updates in plugins or other code that uses
   breezy.

 * ``BzrCommandError`` has been renamed to ``CommandError``.
   (Jelmer Vernooij)

 * The ``osutils.safe_file_id`` and ``osutils.safe_revision_id`` methods
   have been removed. (Jelmer Vernooij)

 * File ids are no longer returned in ``Tree.walkdirs``.
   (Jelmer Vernooij)

Internals
*********

.. Major internal changes, unlikely to be visible to users or plugin 
   developers, but interesting for brz developers.

 * A new ``MergeProposal.post_comment`` function has been added, and
   is currently implemented for GitHub, GitLab and Launchpad.
   (Jelmer Vernooij)

 * Add a ``MemoryBranch`` implementation.  (Jelmer Vernooij)

 * A new ``Workspace`` interface is now available for efficiently
   making changes to large working trees from automation.
   (Jelmer Vernooij)

Testing
*******

.. Fixes and changes that are only relevant to brz's test framework and 
   suite.  This can include new facilities for writing tests, fixes to 
   spurious test failures and changes to the way things should be tested.

 * Tests for most bzr-specific functionality has been moved to the
   ``breezy.bzr.tests`` module. (Jelmer Vernooij)

brz 3.1.0
#########

:Codename: Nirvana
:3.1.0: 2020-05-21

External Compatibility Breaks
*****************************

.. These may require users to change the way they use Breezy.

* The ``brz init-repo`` command has been renamed to
  ``brz init-shared-repo`` to emphasize that it creates
  shared repositories rather than just any kind of repository.
  (Jelmer Vernooij)

New Features
************

.. New commands, options, etc that users may wish to try out.

* A new ``brz land`` command can merge merge proposals on Launchpad,
  GitHub and GitLab sites. (Jelmer Vernooij, #1816213)

* The 'patch' command is now bundled with brz.
  Imported from bzrtools by Aaron Bentley. (Jelmer Vernooij)

* The 'quilt' plugin, extracted from brz-debian, is now
  bundled. (Jelmer Vernooij)

* A new ``calculate_revnos`` configuration option (defaults to enabled)
  can be used to disable revno display for branch formats that
  do not natively store revnos. This speeds up ``brz log`` on
  the Samba git branch by 33%.
  (Jelmer Vernooij)

* Directly read mtab rather than using psutil when trying to figure out
  filesystem types. This removes a dependency that not all users may
  have installed and speeds up import time since psutil brings in
  various other modules. (Jelmer Vernooij)

* ``brz diff`` now has a --color argument that can write
  color diff output. This is based on the cdiff code in
  bzrtools by Aaron Bentley.
  (Jelmer Vernooij, #376594)

* Information about tree references can now be updated on remote
  branches. (Jelmer Vernooij)

* Warn the user when they attempt to use Breezy in a Subversion
  working copy. (Jelmer Vernooij)

* Add a basic Mercurial plugin that mentions that .hg repositories
  are unsupported when the user attempts to access one.
  (Jelmer Vernooij)

* The ``2a`` format now officially supports storing tree references.
  It always partially supported storing tree reference data,
  and would happily pull in tree reference data from other repository
  formats. (Jelmer Vernooij)

* A new ``fossil`` plugin has been added that warns users when they
  attempt to access Fossil repositories.
  (Jelmer Vernooij, #1848821)

* When pushing to Git repositories, symrefs are now followed.
  (Jelmer Vernooij, #1800393)

* New ``brz clone`` command, which clones everything under
  a control directory. I.e. all colocated branches, like
  ``git clone``. (Jelmer Vernooij, #831939)

* ``brz sprout`` is now an alias for ``brz branch``.
  (Jelmer Vernooij)

* ``brz branch`` now accepts a ``-b`` flag with the
  name of the colocated branch to sprout.
  (Jelmer Vernooij, #1869977)

* Add a ``breezy.__main__`` module so that
  ``python3 -m breezy`` works. (Jelmer Vernooij)

Improvements
************

.. Improvements to existing commands, especially improved performance
   or memory usage, or better results.

* A new ``--commit-message`` option has been added to
  ``brz propose``, for hosting sites that support it.
  (Jelmer Vernooij)

* Automatically upgrade to branch format 8 when setting branch references.
  (Jelmer Vernooij)

* The ``ssh`` configuration variable can be used to set the default
  SSH implementation. (Jelmer Vernooij, #650757)

* ``locks.steal_dead`` is now enabled by default.
  (Jelmer Vernooij, #220464)

* The substitution variables for the ``change_editor`` configuration
  option are now "{old_path}" and "{new_path}" rather than "@old_path" and
  "@new_path". The former is more consistent with the way substitutions
  work in other configuration options. The old syntax is still supported.
  (Jelmer Vernooij, #708718)

* The ``brz inventory`` command now accepts a ``--include-root``
  argument to show the tree root. (Jelmer Vernooij)

* Fix support for reading Git repositories over HTTP without
  a smart server. (Jelmer Vernooij)

* CVS pserver URLs now indicate that the pserver protocol is not
  supported. (Jelmer Vernooij)

* Git repositories with submodules can now be imported into 2a
  branches; submodules are converted to nested trees.
  (Jelmer Vernooij, #402814)

* Python 3 is now used by default to run scripts, etc. from the makefile.
  (Jelmer Vernooij)

* ``.git/config`` is now consulted to determine the users' identity
  for commits, and the gpg_signing_key. (Jelmer Vernooij)

* Ignore special files (fifos, block/character devices, sockets)
  when finding changes in Git working trees. (Jelmer Vernooij, #1857244)

* Parse error messages from stderr when a remote Git server
  hangs up. (Jelmer Vernooij)


Bug Fixes
*********

.. Fixes for situations where brz would previously crash or give incorrect
   or undesirable results.

* Print a sensible error message when conversion for an option fails
  (i.e. when a non-int is specified as the value for an integer
  parameter) (#237844, Jelmer Vernooij)

* Don't include timestamps in filenames when reporting on binary
  files in diff. (Jelmer Vernooij, #71307)

* Ignore UnknownFormatErrors when scanning for control directories.
  (Jelmer Vernooij, #468332)

* Fix fetching from remote git repositories in ``brz git-import``.
  (Jelmer Vernooij, #1836238)

* A new ``TreeEntry.is_unmodified`` method has added, which allows
  merge to check for unmodified files without relying
  on the .revision attribute that is not available for Git trees.
  This fixes LCA merges for Git repositories.
  (Jelmer Vernooij, #1826663)

* Fix passing of directories in specific_files to
  GitWorkingTree.iter_entries_by_dir(). (Jelmer Vernooij, #1844054)

* Fix ``brz diff --using`` when {old_path} and {new_path} are not
  specified in the template. (#1847915, Jelmer Vernooij)

* Ignore ghost tags when interacting with remote Git repositories.
  (Jelmer Vernooij)

* Fix ``setup_ui=False`` when initializing Breezy.
  (Jelmer Vernooij, #1852647)

* Fix backwards compatibility with Bazaar by supporting the
  $BZR_EMAIL variable. (Jelmer Vernooij, #1869178)

* Cope with non-ascii characters in Git signatures.
  (Jelmer Vernooij, #1869533)

* Fix use of ``proxy_bypass`` on Python 3.
  (Jelmer Vernooij, #1878698)

* Create $XDG_HOME_DIR if it does not exist.
  (Jelmer Vernooij)

Documentation
*************

.. Improved or updated documentation.

API Changes
***********

.. Changes that may require updates in plugins or other code that uses
   breezy.

* New ``Tree.get_transform`` method for getting a ``TreeTransform``
  object. (Jelmer Vernooij)

* The ``Tree.get_root_id`` method has been removed. Use
  ``Tree.path2id('')`` instead. (Jelmer Vernooij)

* ``Repository.find_branches`` now returns an iterator rather than a
  list. (Jelmer Vernooij, #413970)

* New ``Tree.get_nested_tree`` method for retrieving a nested tree.
  (Jelmer Vernooij)

* The ``ControlDirFormat.register_server_prober`` method has been removed.
  Instead, probers can now have a ``priority`` method to influence
  when they are run. (Jelmer Vernooij)

* New ``urlutils.strip_segment_parameters`` function for
  stripping segment parameters from a URL.
  (Jelmer Vernooij)

* ``Tree.id2path`` has a new optional argument ``recurse``,
  that determines whether it scans through nested trees.
  (Jelmer Vernooij)

* ``VersionedFiles.add_content`` can now be used to add
  content from ``ContentFactory`` objects.
  (Jelmer Vernooij)


Internals
*********

.. Major internal changes, unlikely to be visible to users or plugin 
   developers, but interesting for brz developers.

Testing
*******

.. Fixes and changes that are only relevant to brz's test framework and 
   suite.  This can include new facilities for writing tests, fixes to 
   spurious test failures and changes to the way things should be tested.


..
   vim: tw=74 ft=rst ff=unix