Merge lp:~spiv/bzr/hardlink-2a-408193 into lp:bzr
Proposed by
Andrew Bennetts
Status: | Merged |
---|---|
Approved by: | Martin Pool |
Approved revision: | not available |
Merged at revision: | not available |
Proposed branch: | lp:~spiv/bzr/hardlink-2a-408193 |
Merge into: | lp:bzr |
Diff against target: |
202 lines (+60/-40) 8 files modified
NEWS (+4/-0) bzrlib/builtins.py (+0/-3) bzrlib/tests/blackbox/test_branch.py (+1/-9) bzrlib/tests/blackbox/test_checkout.py (+1/-9) bzrlib/tests/per_tree/test_iter_search_rules.py (+0/-1) bzrlib/tests/test_transform.py (+45/-2) bzrlib/transform.py (+6/-2) bzrlib/workingtree_4.py (+3/-14) |
To merge this branch: | bzr merge lp:~spiv/bzr/hardlink-2a-408193 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Pool | Approve | ||
John A Meinel | Approve | ||
Review via email: mp+15591@code.launchpad.net |
This proposal supersedes a proposal from 2009-11-27.
To post a comment you must log in.
This tries to fix bug 408193, --hardlink not working on recent tree formats. I'm not certain this is a correct fix, as I haven't looked at content filtering code before, so I'd love some careful feedback on this approach.
This patch doesn't seem to break any tests, and it doesn't seem to change performance for the worse. For formats that don't support content filtering, nothing changes. For formats that do, this (assuming I've written this correctly) looks at each file to see if any filtering rules apply to it and if so skips hardlinking of it.
In my testing, if you have no rules configured on a 2a tree, on bzr trees it gives the same performance and hardlinks as --hardlink of a 1.9 format tree. (Both cases with 2a branch and repo, just varying tree format.)
In practice, for me, this makes branching 2a format bzr.dev trees speed up from 3s to 1s. Plus of course uses less disk.
This patch almost certainly deserves new tests. I'd appreciate some suggestions about which tests to add, and where. I guess maybe in test_transform?