Merge lp:~mbp/bzr/340352-rename-lock into lp:~bzr/bzr/trunk-old
- 340352-rename-lock
- Merge into trunk-old
Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp:~mbp/bzr/340352-rename-lock |
Merge into: | lp:~bzr/bzr/trunk-old |
Diff against target: |
345 lines (has conflicts)
Text conflict in NEWS |
To merge this branch: | bzr merge lp:~mbp/bzr/340352-rename-lock |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
John A Meinel | Needs Information | ||
Robert Collins (community) | Needs Fixing | ||
Review via email: mp+4334@code.launchpad.net |
Commit message
Description of the change
Martin Pool (mbp) wrote : | # |
Robert Collins (lifeless) wrote : | # |
the comment block is out of place; it looks like notes you had while developing the code but not particularly helpful where it is. I'd either remove it or move to the if clause its on and add a little exposition.
John A Meinel (jameinel) wrote : | # |
Is there something wrong with the diff? I see a bunch of stuff about HookPoint which doesn't seem to be part of the actual patch.
Martin Pool (mbp) wrote : | # |
> the comment block is out of place; it looks like notes you had while
> developing the code but not particularly helpful where it is. I'd either
> remove it or move to the if clause its on and add a little exposition.
It's meant to give an example of the kind of string that is raised. I'll make this clearer.
Martin Pool (mbp) wrote : | # |
> Is there something wrong with the diff? I see a bunch of stuff about HookPoint
> which doesn't seem to be part of the actual patch.
I guess that's due to <https:/
Preview Diff
1 | === modified file 'NEWS' | |||
2 | --- NEWS 2009-03-24 12:15:01 +0000 | |||
3 | +++ NEWS 2009-03-24 21:35:19 +0000 | |||
4 | @@ -1,5 +1,6 @@ | |||
5 | 1 | ==================== | 1 | ==================== |
6 | 2 | Bazaar Release Notes | 2 | Bazaar Release Notes |
7 | 3 | <<<<<<< TREE | ||
8 | 3 | ==================== | 4 | ==================== |
9 | 4 | 5 | ||
10 | 5 | 6 | ||
11 | @@ -599,6 +600,310 @@ | |||
12 | 599 | :Codename: 1234567890 | 600 | :Codename: 1234567890 |
13 | 600 | :1.12: 2009-02-13 | 601 | :1.12: 2009-02-13 |
14 | 601 | :1.12rc1: 2009-02-10 | 602 | :1.12rc1: 2009-02-10 |
15 | 603 | ======= | ||
16 | 604 | -------------------- | ||
17 | 605 | |||
18 | 606 | .. contents:: | ||
19 | 607 | |||
20 | 608 | |||
21 | 609 | IN DEVELOPMENT | ||
22 | 610 | -------------- | ||
23 | 611 | |||
24 | 612 | COMPATIBILITY BREAKS: | ||
25 | 613 | |||
26 | 614 | * ``bzr log --line`` now indicates which revisions are merges with | ||
27 | 615 | `[merge]` after the date. Scripts which parse the output of this | ||
28 | 616 | command may need to be adjusted. | ||
29 | 617 | (Neil Martinsen-Burrell) | ||
30 | 618 | |||
31 | 619 | NEW FEATURES: | ||
32 | 620 | |||
33 | 621 | * ``bzr reconfigure`` now supports --with-trees and --with-no-trees | ||
34 | 622 | options to change the default tree-creation policy of shared | ||
35 | 623 | repositories. (Matthew Fuller, Marius Kruger, #145033) | ||
36 | 624 | |||
37 | 625 | * Debug flags can now be set in ``~/.bazaar/bazaar.conf``. | ||
38 | 626 | (Martin Pool) | ||
39 | 627 | |||
40 | 628 | * Filtered views provide a mask over the tree so that users can focus | ||
41 | 629 | on a subset of a tree when doing their work. See ``Filtered views`` | ||
42 | 630 | in chapter 7 of the User Guide and ``bzr help view`` for details. | ||
43 | 631 | (Ian Clatworthy) | ||
44 | 632 | |||
45 | 633 | * GNU Changelog output can now be produced by ``bzr log --format | ||
46 | 634 | gnu-changelog``. (Andrea Bolognani, Martin Pool) | ||
47 | 635 | |||
48 | 636 | * The ``-Dmemory`` flag now gives memory information on Windows. | ||
49 | 637 | (John Arbash Meinel) | ||
50 | 638 | |||
51 | 639 | * Multiple authors for a commit can now be recorded by using the "--author" | ||
52 | 640 | option multiple times. (James Westby, #185772) | ||
53 | 641 | |||
54 | 642 | * New clean-tree command, from bzrtools. (Aaron Bentley, Jelmer Vernoij) | ||
55 | 643 | |||
56 | 644 | * New command ``bzr launchpad-open`` opens a Launchpad web page for that | ||
57 | 645 | branch in your web browser, as long as the branch is on Launchpad at all. | ||
58 | 646 | (Jonathan Lange) | ||
59 | 647 | |||
60 | 648 | IMPROVEMENTS: | ||
61 | 649 | |||
62 | 650 | * ``bzr add`` no longer prints ``add completed`` on success. Failure | ||
63 | 651 | still prints an error message. (Robert Collins) | ||
64 | 652 | |||
65 | 653 | * ``bzr branch`` now has a ``--no-tree`` option which turns off the | ||
66 | 654 | generation of a working tree in the new branch. | ||
67 | 655 | (Daniel Watkins, John Klinger, #273993) | ||
68 | 656 | |||
69 | 657 | * Bazaar will now point out ``bzr+ssh://`` to the user when they | ||
70 | 658 | use ssh://. (Jelmer Vernooij, #330535) | ||
71 | 659 | |||
72 | 660 | * ``bzr -v info`` now omits the number of committers branch statistic, | ||
73 | 661 | making it many times faster for large projects. To include that | ||
74 | 662 | statistic in the output, use ``bzr -vv info``. | ||
75 | 663 | (Ian Clatworthy) | ||
76 | 664 | |||
77 | 665 | * ``bzr push`` to a ``bzr`` url (``bzr://``, ``bzr+ssh://`` etc) will | ||
78 | 666 | stream if the server is version 1.13 or greater, reducing roundtrips | ||
79 | 667 | significantly. (Andrew Bennetts, Robert Collins) | ||
80 | 668 | |||
81 | 669 | * Lightweight Checkouts and Stacked Branches should both be much | ||
82 | 670 | faster over remote connections. Building the working tree now | ||
83 | 671 | batches up requests into approx 5MB requests, rather than a separate | ||
84 | 672 | request for each file. (John Arbash Meinel) | ||
85 | 673 | |||
86 | 674 | * Progress bars now show the rate of network activity for | ||
87 | 675 | ``bzr+ssh://`` and ``bzr://`` connections. (Andrew Bennetts) | ||
88 | 676 | |||
89 | 677 | * Support for GSSAPI authentication when using HTTP or HTTPS. | ||
90 | 678 | (Jelmer Vernooij) | ||
91 | 679 | |||
92 | 680 | * The ``bzr shelve`` prompt now includes a '?' help option to explain the | ||
93 | 681 | short options better. (Daniel Watkins, #327429) | ||
94 | 682 | |||
95 | 683 | * ``bzr lp-open`` now falls back to the push location if it cannot find a | ||
96 | 684 | public location. (Jonathan Lange, #332372) | ||
97 | 685 | |||
98 | 686 | * ``bzr lp-open`` will try to find the Launchpad URL for the location | ||
99 | 687 | passed on the command line. This makes ``bzr lp-open lp:foo`` work as | ||
100 | 688 | expected. (Jonathan Lange, #332705) | ||
101 | 689 | |||
102 | 690 | * ``bzr send`` now supports MH-E via ``emacsclient``. (Eric Gillespie) | ||
103 | 691 | |||
104 | 692 | BUG FIXES: | ||
105 | 693 | |||
106 | 694 | * Bazaar now gives a better message including the filename if it's | ||
107 | 695 | unable to read a file in the working directory, for example because | ||
108 | 696 | of a permission error. (Martin Pool, #338653) | ||
109 | 697 | |||
110 | 698 | * ``bzr send`` help is more specific about how to apply merge | ||
111 | 699 | directives. (Neil Martinsen-Burrell, #253470) | ||
112 | 700 | |||
113 | 701 | * ``bzr missing`` now uses ``Repository.get_revision_delta()`` rather | ||
114 | 702 | than fetching trees and determining a delta itself. (Jelmer | ||
115 | 703 | Vernooij, #315048) | ||
116 | 704 | |||
117 | 705 | * ``bzr push`` to a smart server no longer causes "Revision | ||
118 | 706 | {set([('null:',)])} not present ..." errors when the branch has | ||
119 | 707 | multiple root revisions. (Andrew Bennetts, #317654) | ||
120 | 708 | |||
121 | 709 | * ``bzr shelve`` now properly handle patches with no terminating newline. | ||
122 | 710 | (Benoît PIERRE, #303569) | ||
123 | 711 | |||
124 | 712 | * ``bzr unshelve`` gives a more palatable error if passed a non-integer | ||
125 | 713 | shelf id. (Daniel Watkins) | ||
126 | 714 | |||
127 | 715 | * Export now handles files that are not present in the tree. | ||
128 | 716 | (James Westby, #174539) | ||
129 | 717 | |||
130 | 718 | * Fix problem of "directory not empty" when contending for a lock over | ||
131 | 719 | sftp. (Martin Pool, #340352) | ||
132 | 720 | |||
133 | 721 | * Fixed "sprout() got an unexpected keyword argument 'source_branch'" | ||
134 | 722 | error branching from old repositories. | ||
135 | 723 | (Martin Pool, #321695) | ||
136 | 724 | |||
137 | 725 | * Make ``bzr push --quiet <non-local location>`` less chatty. | ||
138 | 726 | (Kent Gibson, #221461) | ||
139 | 727 | |||
140 | 728 | * Many Branch hooks would not fire with ``bzr://`` and ``bzr+ssh://`` | ||
141 | 729 | branches, and this was not noticed due to a bug in the test logic | ||
142 | 730 | for branches. This is now fixed and a test added to prevent it | ||
143 | 731 | reoccuring. (Robert Collins, Andrew Bennetts) | ||
144 | 732 | |||
145 | 733 | * Restore the progress bar on Windows. We were disabling it when TERM | ||
146 | 734 | wasn't set, but Windows doesn't set TERM. (Alexander Belchenko) | ||
147 | 735 | |||
148 | 736 | * ``setup.py build_ext`` now gives a proper error when an extension | ||
149 | 737 | fails to build. (John Arbash Meinel) | ||
150 | 738 | |||
151 | 739 | * Under rare circumstances (aka nobody reported a bug about it), the ftp | ||
152 | 740 | transport could revert to ascii mode. It now stays in binary mode except | ||
153 | 741 | when needed. | ||
154 | 742 | (Vincent Ladeuil) | ||
155 | 743 | |||
156 | 744 | * Unshelve does not generate warnings about progress bars. | ||
157 | 745 | (Aaron Bentley, #328148) | ||
158 | 746 | |||
159 | 747 | DOCUMENTATION: | ||
160 | 748 | |||
161 | 749 | * Added ``Organizing your workspace`` to the User Guide appendices, | ||
162 | 750 | summarizing some common ways of organizing trees, branches and | ||
163 | 751 | repositories and the processes/workflows implied/enabled by each. | ||
164 | 752 | (Ian Clatworthy) | ||
165 | 753 | |||
166 | 754 | * Hooks can now be self documenting. ``bzrlib.hooks.Hooks.create_hook`` | ||
167 | 755 | is the entry point for this feature. (Robert Collins) | ||
168 | 756 | |||
169 | 757 | * The documentation for ``shelve`` and ``unshelve`` has been clarified. | ||
170 | 758 | (Daniel Watkins, #327421, #327425) | ||
171 | 759 | |||
172 | 760 | API CHANGES: | ||
173 | 761 | |||
174 | 762 | * ``bzr selftest`` now fails if the bazaar sources contain trailing | ||
175 | 763 | whitespace, non-unix style line endings and files not ending in a | ||
176 | 764 | newline. About 372 files and 3243 lines with trailing whitespace was | ||
177 | 765 | updated to comply with this. The code already complied with the other | ||
178 | 766 | criteria, but now it is enforced. (Marius Kruger) | ||
179 | 767 | |||
180 | 768 | * ``Branch.fetch`` and ``Repository.fetch`` now return None rather | ||
181 | 769 | than a count of copied revisions and failed revisions. A while back | ||
182 | 770 | we stopped ever reporting failed revisions because we started | ||
183 | 771 | erroring instead, and the copied revisions count is not used in the | ||
184 | 772 | UI at all - indeed it only reflects the repository status not | ||
185 | 773 | changes to the branch itself. (Robert Collins) | ||
186 | 774 | |||
187 | 775 | * MutableTree.commit now favours the "authors" argument, with the old | ||
188 | 776 | "author" argument being deprecated. | ||
189 | 777 | |||
190 | 778 | * Remove deprecated EmptyTree. (Martin Pool) | ||
191 | 779 | |||
192 | 780 | * ``Repository.fetch`` now accepts an optional ``fetch_spec`` | ||
193 | 781 | parameter. A ``SearchResult`` or ``MiniSearchResult`` may be passed | ||
194 | 782 | to ``fetch_spec`` instead of a ``last_revision`` to specify exactly | ||
195 | 783 | which revisions to fetch. (Andrew Bennetts) | ||
196 | 784 | |||
197 | 785 | * ``RepositoryAcquisitionPolicy.acquire_repository`` now returns a | ||
198 | 786 | tuple of ``(repository, is_new_flag)``, rather than just the | ||
199 | 787 | repository. (Andrew Bennetts) | ||
200 | 788 | |||
201 | 789 | * Revision.get_apparent_author() is now deprecated, replaced by | ||
202 | 790 | Revision.get_apparent_authors(), which returns a list. The former | ||
203 | 791 | now returns the first item that would be returned from the second. | ||
204 | 792 | |||
205 | 793 | * The ``BranchBuilder`` test helper now accepts a ``timestamp`` | ||
206 | 794 | parameter to ``build_commit`` and ``build_snapshot``. (Martin Pool) | ||
207 | 795 | |||
208 | 796 | * The ``_fetch_*`` attributes on ``Repository`` are now on | ||
209 | 797 | ``RepositoryFormat``, more accurately reflecting their intent (they | ||
210 | 798 | describe a disk format capability, not state of a particular | ||
211 | 799 | repository of that format). (Robert Collins) | ||
212 | 800 | |||
213 | 801 | INTERNALS: | ||
214 | 802 | |||
215 | 803 | * Branching from a non-stacked branch on a smart protocol is now | ||
216 | 804 | free of virtual file system methods. | ||
217 | 805 | (Robert Collins, Andrew Bennetts) | ||
218 | 806 | |||
219 | 807 | * Branch and Repository creation on a bzr+ssh://server are now done | ||
220 | 808 | via RPC calls rather than VFS calls, reducing round trips for | ||
221 | 809 | pushing new branches substantially. (Robert Collins) | ||
222 | 810 | |||
223 | 811 | * ``Branch.clone`` now takes the ``repository_policy`` formerly used | ||
224 | 812 | inside ``BzrDir.clone_on_transport``, allowing stacking to be | ||
225 | 813 | configured before the branch tags and revision tip are set. This | ||
226 | 814 | fixes a race condition cloning stacked branches that would cause | ||
227 | 815 | plugins to have hooks called on non-stacked instances. | ||
228 | 816 | (Robert Collins, #334187) | ||
229 | 817 | |||
230 | 818 | * ``BzrDir.cloning_metadir`` now has a RPC call. (Robert Collins) | ||
231 | 819 | |||
232 | 820 | * ``BzrDirFormat.__str__`` now uses the human readable description | ||
233 | 821 | rather than the sometimes-absent disk label. (Robert Collins) | ||
234 | 822 | |||
235 | 823 | * ``bzrlib.fetch`` is now composed of a sender and a sink component | ||
236 | 824 | allowing for decoupling over a network connection. Fetching from | ||
237 | 825 | or into a RemoteRepository with a 1.13 server will use this to | ||
238 | 826 | stream the operation. | ||
239 | 827 | (Andrew Bennetts, Robert Collins) | ||
240 | 828 | |||
241 | 829 | * ``bzrlib.tests.run_suite`` accepts a runner_class parameter | ||
242 | 830 | supporting the use of different runners. (Robert Collins) | ||
243 | 831 | |||
244 | 832 | * Change how file_ids and revision_ids are interned as part of | ||
245 | 833 | inventory deserialization. Now we use the real ``intern()``, rather | ||
246 | 834 | than our own workaround that would also cache a Unicode copy of the | ||
247 | 835 | string, and never emptied the cache. This should slightly reduce | ||
248 | 836 | memory consumption. (John Arbash Meinel) | ||
249 | 837 | |||
250 | 838 | * New branch method ``create_clone_on_transport`` that returns a | ||
251 | 839 | branch object. (Robert Collins) | ||
252 | 840 | |||
253 | 841 | * New hook Commands['extend_command'] to allow plugins to access a | ||
254 | 842 | command object before the command is run (or help generated from | ||
255 | 843 | it), without overriding the command. (Robert Collins) | ||
256 | 844 | |||
257 | 845 | * New version of the ``BzrDir.find_repository`` verb supporting | ||
258 | 846 | ``_network_name`` to support removing more _ensure_real calls. | ||
259 | 847 | (Robert Collins) | ||
260 | 848 | |||
261 | 849 | * ``RemoteBranchFormat`` no longer claims to have a disk format string. | ||
262 | 850 | (Robert Collins) | ||
263 | 851 | |||
264 | 852 | * ``Repository`` objects now have ``suspend_write_group`` and | ||
265 | 853 | ``resume_write_group`` methods. These are currently only useful | ||
266 | 854 | with pack repositories. (Andrew Bennetts, Robert Collins) | ||
267 | 855 | |||
268 | 856 | * ``BzrDirFormat``, ``BranchFormat`` and ``RepositoryFormat`` objects | ||
269 | 857 | now have a ``network_name`` for passing the format across RPC calls. | ||
270 | 858 | (Robert Collins, Andrew Bennetts) | ||
271 | 859 | |||
272 | 860 | * ``RepositoryFormat`` objects now all have a new attribute | ||
273 | 861 | ``_serializer`` used by fetch when reserialising is required. | ||
274 | 862 | (Robert Collins, Andrew Bennetts) | ||
275 | 863 | |||
276 | 864 | * Some methods have been pulled up from ``BzrBranch`` to ``Branch`` | ||
277 | 865 | to aid branch types that are not bzr branch objects (like | ||
278 | 866 | RemoteBranch). (Robert Collins, Andrew Bennetts) | ||
279 | 867 | |||
280 | 868 | * Test adaptation has been made consistent throughout the built in | ||
281 | 869 | tests. ``TestScenarioApplier``, ``multiply_tests_from_modules``, | ||
282 | 870 | ``adapt_tests``, ``adapt_modules`` have all been deleted. Please | ||
283 | 871 | use ``multiply_tests``, or for lower level needs ``apply_scenarios`` | ||
284 | 872 | and ``apply_scenario``. (Robert Collins) | ||
285 | 873 | |||
286 | 874 | * ``TestSkipped`` is now detected by TestCase and passed to the | ||
287 | 875 | ``TestResult`` by calling ``addSkip``. For older TestResult objects, | ||
288 | 876 | where ``addSkip`` is not available, ``addError`` is still called. | ||
289 | 877 | This permits test filtering in subunit to strip out skipped tests | ||
290 | 878 | resulting in a faster fix-shrink-list-run cycle. This is compatible | ||
291 | 879 | with the testtools protocol for skips. (Robert Collins) | ||
292 | 880 | |||
293 | 881 | * The ``_index`` of ``KnitVersionedFiles`` now supports the ability | ||
294 | 882 | to scan an underlying index that is going to be incorporated into | ||
295 | 883 | the ``KnitVersionedFiles`` object, to determine if it has missing | ||
296 | 884 | delta references. The method is ``scan_unvalidated_index``. | ||
297 | 885 | (Andrew Bennetts, Robert Collins) | ||
298 | 886 | |||
299 | 887 | * There is a RemoteSink object which handles pushing to smart servers. | ||
300 | 888 | (Andrew Bennetts, Robert Collins) | ||
301 | 889 | |||
302 | 890 | * ``TransportTraceDecorator`` now logs ``put_bytes_non_atomic`` and | ||
303 | 891 | ``rmdir`` calls. (Robert Collins) | ||
304 | 892 | |||
305 | 893 | * ``VersionedFiles`` record adapters have had their signature change | ||
306 | 894 | from ``(record, record.get_bytes_as(record.storage_kind))`` to | ||
307 | 895 | ``(record)`` reducing excess duplication and allowing adapters | ||
308 | 896 | to access private data in record to obtain content more | ||
309 | 897 | efficiently. (Robert Collins) | ||
310 | 898 | |||
311 | 899 | * We no longer probe to see if we should create a working tree during | ||
312 | 900 | clone if we cannot get a local_abspath for the new bzrdir. | ||
313 | 901 | (Robert Collins) | ||
314 | 902 | |||
315 | 903 | |||
316 | 904 | bzr 1.12 "1234567890" 2009-02-13 | ||
317 | 905 | -------------------------------- | ||
318 | 906 | >>>>>>> MERGE-SOURCE | ||
319 | 602 | 907 | ||
320 | 603 | This release of Bazaar contains many improvements to the speed, | 908 | This release of Bazaar contains many improvements to the speed, |
321 | 604 | documentation and functionality of ``bzr log`` and the display of logged | 909 | documentation and functionality of ``bzr log`` and the display of logged |
322 | 605 | 910 | ||
323 | === modified file 'bzrlib/transport/sftp.py' | |||
324 | --- bzrlib/transport/sftp.py 2009-03-23 14:59:43 +0000 | |||
325 | +++ bzrlib/transport/sftp.py 2009-03-24 21:35:19 +0000 | |||
326 | @@ -702,6 +702,9 @@ | |||
327 | 702 | # paramiko seems to generate detailless errors. | 702 | # paramiko seems to generate detailless errors. |
328 | 703 | self._translate_error(e, path, raise_generic=False) | 703 | self._translate_error(e, path, raise_generic=False) |
329 | 704 | if getattr(e, 'args', None) is not None: | 704 | if getattr(e, 'args', None) is not None: |
330 | 705 | # 29.993 Raising exception with args ('Directory not empty: | ||
331 | 706 | # "/srv/bazaar.launchpad.net/push-branches/00/00/94/67/.bzr/branch/lock/xrdlfxf6nl.tmp": | ||
332 | 707 | # [Errno 39] Directory not empty',) | ||
333 | 705 | if (e.args == ('No such file or directory',) or | 708 | if (e.args == ('No such file or directory',) or |
334 | 706 | e.args == ('No such file',)): | 709 | e.args == ('No such file',)): |
335 | 707 | raise NoSuchFile(path, str(e) + more_info) | 710 | raise NoSuchFile(path, str(e) + more_info) |
336 | @@ -711,6 +714,9 @@ | |||
337 | 711 | # strange but true, for the paramiko server. | 714 | # strange but true, for the paramiko server. |
338 | 712 | if (e.args == ('Failure',)): | 715 | if (e.args == ('Failure',)): |
339 | 713 | raise failure_exc(path, str(e) + more_info) | 716 | raise failure_exc(path, str(e) + more_info) |
340 | 717 | if (e.args[0].startswith('Directory not empty: ') | ||
341 | 718 | or getattr(e, 'errno', None) == errno.ENOTEMPTY): | ||
342 | 719 | raise errors.DirectoryNotEmpty(path, str(e)) | ||
343 | 714 | mutter('Raising exception with args %s', e.args) | 720 | mutter('Raising exception with args %s', e.args) |
344 | 715 | if getattr(e, 'errno', None) is not None: | 721 | if getattr(e, 'errno', None) is not None: |
345 | 716 | mutter('Raising exception with errno %s', e.errno) | 722 | mutter('Raising exception with errno %s', e.errno) |
bzr internally expects DirectoryNotEmpty and relies on transports to translate it to that form.
=== modified file 'NEWS'
--- NEWS 2009-03-10 06:46:19 +0000
+++ NEWS 2009-03-10 07:28:23 +0000
@@ -114,6 +114,9 @@
* Export now handles files that are not present in the tree.
(James Westby, #174539)
+ * Fix problem of "directory not empty" when contending for a lock over
+ sftp. (Martin Pool, #340352)
+
* Fixed "sprout() got an unexpected keyword argument 'source_branch'"
error branching from old repositories.
(Martin Pool, #321695)
=== modified file 'bzrlib/ transport/ sftp.py' transport/ sftp.py 2009-02-23 15:29:35 +0000 transport/ sftp.py 2009-03-10 07:24:55 +0000
self. _translate_ error(e, path, raise_generic= False) launchpad. net/push- branches/ 00/00/94/ 67/.bzr/ branch/ lock/xrdlfxf6nl .tmp":
e.args == ('No such file',)):
raise NoSuchFile(path, str(e) + more_info)
raise failure_exc(path, str(e) + more_info) 0].startswith( 'Directory not empty: ') DirectoryNotEmp ty(path, str(e))
mutter( 'Raising exception with args %s', e.args)
mutter( 'Raising exception with errno %s', e.errno)
--- bzrlib/
+++ bzrlib/
@@ -692,6 +692,9 @@
# paramiko seems to generate detailless errors.
if getattr(e, 'args', None) is not None:
+ # 29.993 Raising exception with args ('Directory not empty:
+ # "/srv/bazaar.
+ # [Errno 39] Directory not empty',)
if (e.args == ('No such file or directory',) or
@@ -701,6 +704,9 @@
# strange but true, for the paramiko server.
if (e.args == ('Failure',)):
+ if (e.args[
+ or getattr(e, 'errno', None) == errno.ENOTEMPTY):
+ raise errors.
if getattr(e, 'errno', None) is not None: