Converted libbe.storage.vcs.base to new Storage format.
authorW. Trevor King <wking@drexel.edu>
Sun, 13 Dec 2009 11:19:23 +0000 (06:19 -0500)
committerW. Trevor King <wking@drexel.edu>
Sun, 13 Dec 2009 11:19:23 +0000 (06:19 -0500)
499 files changed:
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/4be73baf-e46b-4acb-a58e-4719e57c550b/body [moved from .be/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/4be73baf-e46b-4acb-a58e-4719e57c550b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/4be73baf-e46b-4acb-a58e-4719e57c550b/values [moved from .be/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/4be73baf-e46b-4acb-a58e-4719e57c550b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/d5ed4f87-f1a1-4138-b0ad-190e4a49d820/body [moved from .be/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/d5ed4f87-f1a1-4138-b0ad-190e4a49d820/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/d5ed4f87-f1a1-4138-b0ad-190e4a49d820/values [moved from .be/bugs/00f26f04-9202-4288-8744-b29abc2342d6/comments/d5ed4f87-f1a1-4138-b0ad-190e4a49d820/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/00f26f04-9202-4288-8744-b29abc2342d6/values [moved from .be/bugs/00f26f04-9202-4288-8744-b29abc2342d6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/02223264-e28a-4720-9f20-1e7a27a7041d/values [moved from .be/bugs/02223264-e28a-4720-9f20-1e7a27a7041d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/144c238c-75d1-40f1-82c1-647668bcf2bc/body [moved from .be/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/144c238c-75d1-40f1-82c1-647668bcf2bc/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/144c238c-75d1-40f1-82c1-647668bcf2bc/values [moved from .be/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/144c238c-75d1-40f1-82c1-647668bcf2bc/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/2bb9163c-a2c4-4301-aff5-385f58a14301/body [moved from .be/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/2bb9163c-a2c4-4301-aff5-385f58a14301/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/2bb9163c-a2c4-4301-aff5-385f58a14301/values [moved from .be/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/2bb9163c-a2c4-4301-aff5-385f58a14301/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/eff20807-07f0-444d-8992-f69ab3f526c5/body [moved from .be/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/eff20807-07f0-444d-8992-f69ab3f526c5/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/eff20807-07f0-444d-8992-f69ab3f526c5/values [moved from .be/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/comments/eff20807-07f0-444d-8992-f69ab3f526c5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/values [moved from .be/bugs/09f84059-fc8e-4954-b24d-a2b33ef21bf4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0ca2d112-b5bb-4df1-8ac0-e46db6cdd442/values [moved from .be/bugs/0ca2d112-b5bb-4df1-8ac0-e46db6cdd442/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/16ba77d3-dfc9-4732-8d08-0e471f400d85/body [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/16ba77d3-dfc9-4732-8d08-0e471f400d85/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/16ba77d3-dfc9-4732-8d08-0e471f400d85/values [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/16ba77d3-dfc9-4732-8d08-0e471f400d85/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/17a2217e-fc1d-4d7a-a569-4fd2a4a2261e/body [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/17a2217e-fc1d-4d7a-a569-4fd2a4a2261e/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/17a2217e-fc1d-4d7a-a569-4fd2a4a2261e/values [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/17a2217e-fc1d-4d7a-a569-4fd2a4a2261e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/202e0dc6-61bf-4b17-a8bd-f8a27482cb68/body [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/202e0dc6-61bf-4b17-a8bd-f8a27482cb68/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/202e0dc6-61bf-4b17-a8bd-f8a27482cb68/values [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/202e0dc6-61bf-4b17-a8bd-f8a27482cb68/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/6a0080c4-d684-4c2c-afaa-c15cc43d68ad/body [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/6a0080c4-d684-4c2c-afaa-c15cc43d68ad/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/6a0080c4-d684-4c2c-afaa-c15cc43d68ad/values [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/6a0080c4-d684-4c2c-afaa-c15cc43d68ad/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/body [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/values [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/values [moved from .be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/0e0c806c-5443-4839-aa60-9615c8c10853/values [moved from .be/bugs/0e0c806c-5443-4839-aa60-9615c8c10853/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/1100c966-9671-4bc6-8b68-6d408a910da1/comments/bb406a33-92b6-46dd-950c-c7cfb5440e7b/body [moved from .be/bugs/1100c966-9671-4bc6-8b68-6d408a910da1/comments/bb406a33-92b6-46dd-950c-c7cfb5440e7b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/1100c966-9671-4bc6-8b68-6d408a910da1/comments/bb406a33-92b6-46dd-950c-c7cfb5440e7b/values [moved from .be/bugs/1100c966-9671-4bc6-8b68-6d408a910da1/comments/bb406a33-92b6-46dd-950c-c7cfb5440e7b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/1100c966-9671-4bc6-8b68-6d408a910da1/values [moved from .be/bugs/1100c966-9671-4bc6-8b68-6d408a910da1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/0f60a148-7024-44bd-bbed-377cbece9d1b/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/0f60a148-7024-44bd-bbed-377cbece9d1b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/0f60a148-7024-44bd-bbed-377cbece9d1b/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/0f60a148-7024-44bd-bbed-377cbece9d1b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/13012b22-2d02-444c-87c0-8cf0f17137ae/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/13012b22-2d02-444c-87c0-8cf0f17137ae/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/13012b22-2d02-444c-87c0-8cf0f17137ae/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/13012b22-2d02-444c-87c0-8cf0f17137ae/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/1f9f60de-ba37-42bc-a1c0-dc062ef255e1/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/1f9f60de-ba37-42bc-a1c0-dc062ef255e1/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/1f9f60de-ba37-42bc-a1c0-dc062ef255e1/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/1f9f60de-ba37-42bc-a1c0-dc062ef255e1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/30a8b841-98ae-41b7-9ef2-6af7cffca8da/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/30a8b841-98ae-41b7-9ef2-6af7cffca8da/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/30a8b841-98ae-41b7-9ef2-6af7cffca8da/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/30a8b841-98ae-41b7-9ef2-6af7cffca8da/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/46937fd4-b0bc-4eed-8033-d699445441ea/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/46937fd4-b0bc-4eed-8033-d699445441ea/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/46937fd4-b0bc-4eed-8033-d699445441ea/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/46937fd4-b0bc-4eed-8033-d699445441ea/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/4d192c6c-a4a8-4844-b083-2dd5926bd2d9/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/4d192c6c-a4a8-4844-b083-2dd5926bd2d9/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/4d192c6c-a4a8-4844-b083-2dd5926bd2d9/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/4d192c6c-a4a8-4844-b083-2dd5926bd2d9/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/624a4542-92e9-442e-b71c-a14da4fe55cf/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/624a4542-92e9-442e-b71c-a14da4fe55cf/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/624a4542-92e9-442e-b71c-a14da4fe55cf/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/624a4542-92e9-442e-b71c-a14da4fe55cf/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/6dcc910a-ce15-4eeb-b49b-4747719748ed/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/6dcc910a-ce15-4eeb-b49b-4747719748ed/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/6dcc910a-ce15-4eeb-b49b-4747719748ed/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/6dcc910a-ce15-4eeb-b49b-4747719748ed/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/8ffc90d7-0be7-4b00-88e6-9ae1b65f7957/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/8ffc90d7-0be7-4b00-88e6-9ae1b65f7957/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/8ffc90d7-0be7-4b00-88e6-9ae1b65f7957/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/8ffc90d7-0be7-4b00-88e6-9ae1b65f7957/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/bd98f525-95ec-446a-84e8-34c7d6fa5b40/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/bd98f525-95ec-446a-84e8-34c7d6fa5b40/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/bd98f525-95ec-446a-84e8-34c7d6fa5b40/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/bd98f525-95ec-446a-84e8-34c7d6fa5b40/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/c8283e08-967c-4a7b-b953-3ec62c83fb9f/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/c8283e08-967c-4a7b-b953-3ec62c83fb9f/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/c8283e08-967c-4a7b-b953-3ec62c83fb9f/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/c8283e08-967c-4a7b-b953-3ec62c83fb9f/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/d86e497d-667d-4c2b-9249-76026df56633/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/d86e497d-667d-4c2b-9249-76026df56633/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/d86e497d-667d-4c2b-9249-76026df56633/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/d86e497d-667d-4c2b-9249-76026df56633/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/dc32aa62-cf56-4171-84a1-8f7d02b23b6d/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/dc32aa62-cf56-4171-84a1-8f7d02b23b6d/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/dc32aa62-cf56-4171-84a1-8f7d02b23b6d/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/dc32aa62-cf56-4171-84a1-8f7d02b23b6d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/e520239c-8d69-4ff6-b1bd-0c2f74366200/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/e520239c-8d69-4ff6-b1bd-0c2f74366200/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/e520239c-8d69-4ff6-b1bd-0c2f74366200/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/e520239c-8d69-4ff6-b1bd-0c2f74366200/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/fd6162f3-7fc1-41d1-a073-a07465802b72/body [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/fd6162f3-7fc1-41d1-a073-a07465802b72/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/fd6162f3-7fc1-41d1-a073-a07465802b72/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/comments/fd6162f3-7fc1-41d1-a073-a07465802b72/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/values [moved from .be/bugs/12c986be-d19a-4b8b-b1b5-68248ff4d331/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/16fc9496-cdc2-4c6e-9b9f-b8f483b6dedb/comments/489397bd-b987-4a08-9589-c5b71661ebb7/body [moved from .be/bugs/16fc9496-cdc2-4c6e-9b9f-b8f483b6dedb/comments/489397bd-b987-4a08-9589-c5b71661ebb7/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/16fc9496-cdc2-4c6e-9b9f-b8f483b6dedb/comments/489397bd-b987-4a08-9589-c5b71661ebb7/values [moved from .be/bugs/16fc9496-cdc2-4c6e-9b9f-b8f483b6dedb/comments/489397bd-b987-4a08-9589-c5b71661ebb7/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/16fc9496-cdc2-4c6e-9b9f-b8f483b6dedb/values [moved from .be/bugs/16fc9496-cdc2-4c6e-9b9f-b8f483b6dedb/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/6010e186-0260-44e5-8442-8df2269910ce/body [moved from .be/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/6010e186-0260-44e5-8442-8df2269910ce/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/6010e186-0260-44e5-8442-8df2269910ce/values [moved from .be/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/6010e186-0260-44e5-8442-8df2269910ce/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/body [moved from .be/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/values [moved from .be/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c531727a-9d0f-486f-aa0e-d4d2f2236640/body [moved from .be/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c531727a-9d0f-486f-aa0e-d4d2f2236640/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c531727a-9d0f-486f-aa0e-d4d2f2236640/values [moved from .be/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/comments/c531727a-9d0f-486f-aa0e-d4d2f2236640/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/values [moved from .be/bugs/17921fbc-e7f0-4f31-8cdd-598e5ba7237b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/b8bbd433-9017-4c04-a038-2a7370a3adc7/body [moved from .be/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/b8bbd433-9017-4c04-a038-2a7370a3adc7/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/b8bbd433-9017-4c04-a038-2a7370a3adc7/values [moved from .be/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/b8bbd433-9017-4c04-a038-2a7370a3adc7/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/e5db7c9b-de48-4302-905b-9570bb6e7ade/body [moved from .be/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/e5db7c9b-de48-4302-905b-9570bb6e7ade/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/e5db7c9b-de48-4302-905b-9570bb6e7ade/values [moved from .be/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/comments/e5db7c9b-de48-4302-905b-9570bb6e7ade/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/values [moved from .be/bugs/2103f60c-36e5-4b05-b57c-8c6fee2d80d4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4012c6cc-1300-4f6b-af0e-9176eedf8de7/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4012c6cc-1300-4f6b-af0e-9176eedf8de7/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4012c6cc-1300-4f6b-af0e-9176eedf8de7/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4012c6cc-1300-4f6b-af0e-9176eedf8de7/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4952e1c7-e035-42f1-882b-6b5264481d0a/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4952e1c7-e035-42f1-882b-6b5264481d0a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4952e1c7-e035-42f1-882b-6b5264481d0a/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/4952e1c7-e035-42f1-882b-6b5264481d0a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/64424f05-b42b-4835-8afd-8495ae61345d/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/64424f05-b42b-4835-8afd-8495ae61345d/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/64424f05-b42b-4835-8afd-8495ae61345d/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/64424f05-b42b-4835-8afd-8495ae61345d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/6555a651-5a7f-4a8a-9793-47ad1315e9e8/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/6555a651-5a7f-4a8a-9793-47ad1315e9e8/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/6555a651-5a7f-4a8a-9793-47ad1315e9e8/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/6555a651-5a7f-4a8a-9793-47ad1315e9e8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/7750d77c-85d2-4810-9d41-cec62b0da885/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/7750d77c-85d2-4810-9d41-cec62b0da885/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/7750d77c-85d2-4810-9d41-cec62b0da885/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/7750d77c-85d2-4810-9d41-cec62b0da885/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/777182da-a216-45c7-bf4d-42c84e511c66/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/777182da-a216-45c7-bf4d-42c84e511c66/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/777182da-a216-45c7-bf4d-42c84e511c66/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/777182da-a216-45c7-bf4d-42c84e511c66/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/9bbe9370-99c7-4d7c-80ee-9ade6b6feb9f/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/9bbe9370-99c7-4d7c-80ee-9ade6b6feb9f/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/9bbe9370-99c7-4d7c-80ee-9ade6b6feb9f/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/9bbe9370-99c7-4d7c-80ee-9ade6b6feb9f/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/b9865d8b-46ae-4169-bc83-d75a98164729/body [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/b9865d8b-46ae-4169-bc83-d75a98164729/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/b9865d8b-46ae-4169-bc83-d75a98164729/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/comments/b9865d8b-46ae-4169-bc83-d75a98164729/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/values [moved from .be/bugs/22b6f620-d2f7-42a5-a02e-145733a4e366/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/27bb8bc2-05c2-417a-9d09-928471380d7a/values [moved from .be/bugs/27bb8bc2-05c2-417a-9d09-928471380d7a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2929814b-2163-45d0-87ba-f7d1ef0a32a9/comments/6d7072de-89b6-4c53-a435-6879c644a0e8/body [moved from .be/bugs/2929814b-2163-45d0-87ba-f7d1ef0a32a9/comments/6d7072de-89b6-4c53-a435-6879c644a0e8/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2929814b-2163-45d0-87ba-f7d1ef0a32a9/comments/6d7072de-89b6-4c53-a435-6879c644a0e8/values [moved from .be/bugs/2929814b-2163-45d0-87ba-f7d1ef0a32a9/comments/6d7072de-89b6-4c53-a435-6879c644a0e8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2929814b-2163-45d0-87ba-f7d1ef0a32a9/values [moved from .be/bugs/2929814b-2163-45d0-87ba-f7d1ef0a32a9/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2aa60b34-2c8d-4f41-bb97-a57309523262/comments/f21bec0d-cad0-44d2-a301-bfb11adce313/body [moved from .be/bugs/2aa60b34-2c8d-4f41-bb97-a57309523262/comments/f21bec0d-cad0-44d2-a301-bfb11adce313/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2aa60b34-2c8d-4f41-bb97-a57309523262/comments/f21bec0d-cad0-44d2-a301-bfb11adce313/values [moved from .be/bugs/2aa60b34-2c8d-4f41-bb97-a57309523262/comments/f21bec0d-cad0-44d2-a301-bfb11adce313/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2aa60b34-2c8d-4f41-bb97-a57309523262/values [moved from .be/bugs/2aa60b34-2c8d-4f41-bb97-a57309523262/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2b81b428-fc43-4970-9469-b442385b9c0d/values [moved from .be/bugs/2b81b428-fc43-4970-9469-b442385b9c0d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/074ef29a-3f1d-46dc-8561-7a56af7e6d67/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/074ef29a-3f1d-46dc-8561-7a56af7e6d67/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/074ef29a-3f1d-46dc-8561-7a56af7e6d67/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/074ef29a-3f1d-46dc-8561-7a56af7e6d67/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/1dba8196-654b-4ca0-9a95-fb334af81863/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/1dba8196-654b-4ca0-9a95-fb334af81863/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/1dba8196-654b-4ca0-9a95-fb334af81863/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/1dba8196-654b-4ca0-9a95-fb334af81863/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/3bf57ee7-710f-4a01-a8af-8bb9eb9dc937/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/3bf57ee7-710f-4a01-a8af-8bb9eb9dc937/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/3bf57ee7-710f-4a01-a8af-8bb9eb9dc937/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/3bf57ee7-710f-4a01-a8af-8bb9eb9dc937/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/55263144-9775-4b18-ab83-29d66ed91a53/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/55263144-9775-4b18-ab83-29d66ed91a53/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/55263144-9775-4b18-ab83-29d66ed91a53/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/55263144-9775-4b18-ab83-29d66ed91a53/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/68927fef-6ce1-4a1f-a414-28695d913a50/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/68927fef-6ce1-4a1f-a414-28695d913a50/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/68927fef-6ce1-4a1f-a414-28695d913a50/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/68927fef-6ce1-4a1f-a414-28695d913a50/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/83202b83-eea8-452f-8239-d468940bddba/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/83202b83-eea8-452f-8239-d468940bddba/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/83202b83-eea8-452f-8239-d468940bddba/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/83202b83-eea8-452f-8239-d468940bddba/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/8c1c4f38-a8d4-4cf9-a9f0-e9846ebbcad8/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/8c1c4f38-a8d4-4cf9-a9f0-e9846ebbcad8/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/8c1c4f38-a8d4-4cf9-a9f0-e9846ebbcad8/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/8c1c4f38-a8d4-4cf9-a9f0-e9846ebbcad8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/b900f7fd-bab6-48c4-922c-a051f933da58/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/b900f7fd-bab6-48c4-922c-a051f933da58/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/b900f7fd-bab6-48c4-922c-a051f933da58/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/b900f7fd-bab6-48c4-922c-a051f933da58/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/c7ace551-2982-4683-bca3-b5e66056cce5/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/c7ace551-2982-4683-bca3-b5e66056cce5/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/c7ace551-2982-4683-bca3-b5e66056cce5/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/c7ace551-2982-4683-bca3-b5e66056cce5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/cb5689f4-7c36-4c44-b380-ca9e06e80bae/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/cb5689f4-7c36-4c44-b380-ca9e06e80bae/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/cb5689f4-7c36-4c44-b380-ca9e06e80bae/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/cb5689f4-7c36-4c44-b380-ca9e06e80bae/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/da97e18f-33d6-469e-9d93-6457b9a6bfca/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/da97e18f-33d6-469e-9d93-6457b9a6bfca/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/da97e18f-33d6-469e-9d93-6457b9a6bfca/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/da97e18f-33d6-469e-9d93-6457b9a6bfca/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/e5248100-ea02-4205-a4c1-ac7a577c6362/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/e5248100-ea02-4205-a4c1-ac7a577c6362/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/e5248100-ea02-4205-a4c1-ac7a577c6362/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/e5248100-ea02-4205-a4c1-ac7a577c6362/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/fd7ab206-5937-4ede-9e78-97aff098b677/body [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/fd7ab206-5937-4ede-9e78-97aff098b677/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/fd7ab206-5937-4ede-9e78-97aff098b677/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/comments/fd7ab206-5937-4ede-9e78-97aff098b677/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/values [moved from .be/bugs/2f048ac5-5564-4b34-b7f9-605357267ed2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/301724b1-3853-4aff-8f23-44373df7cf1c/comments/0d8af004-8352-4254-b747-d96a40a5d457/body [moved from .be/bugs/301724b1-3853-4aff-8f23-44373df7cf1c/comments/0d8af004-8352-4254-b747-d96a40a5d457/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/301724b1-3853-4aff-8f23-44373df7cf1c/comments/0d8af004-8352-4254-b747-d96a40a5d457/values [moved from .be/bugs/301724b1-3853-4aff-8f23-44373df7cf1c/comments/0d8af004-8352-4254-b747-d96a40a5d457/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/301724b1-3853-4aff-8f23-44373df7cf1c/values [moved from .be/bugs/301724b1-3853-4aff-8f23-44373df7cf1c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/body [moved from .be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/values [moved from .be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/values [moved from .be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/values [moved from .be/bugs/3613e6e9-db9e-4775-8914-f31f0b4b81ac/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/372f8a5c-a1ce-4b07-a7b1-f409033a7eec/values [moved from .be/bugs/372f8a5c-a1ce-4b07-a7b1-f409033a7eec/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9aa88bbd-71d0-44fa-804d-3562171f9539/body [moved from .be/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9aa88bbd-71d0-44fa-804d-3562171f9539/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9aa88bbd-71d0-44fa-804d-3562171f9539/values [moved from .be/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9aa88bbd-71d0-44fa-804d-3562171f9539/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9e33512e-e3cb-42ec-bc99-8e77587d0d3f/body [moved from .be/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9e33512e-e3cb-42ec-bc99-8e77587d0d3f/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9e33512e-e3cb-42ec-bc99-8e77587d0d3f/values [moved from .be/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/9e33512e-e3cb-42ec-bc99-8e77587d0d3f/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/b76434a3-5cf9-4d2c-820b-64444289c09f/body [moved from .be/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/b76434a3-5cf9-4d2c-820b-64444289c09f/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/b76434a3-5cf9-4d2c-820b-64444289c09f/values [moved from .be/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/comments/b76434a3-5cf9-4d2c-820b-64444289c09f/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/values [moved from .be/bugs/381555eb-f2e3-4ef0-8303-d759c00b390a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/287d3cc1-1cd0-449a-b280-87c529e33951/body [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/287d3cc1-1cd0-449a-b280-87c529e33951/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/287d3cc1-1cd0-449a-b280-87c529e33951/values [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/287d3cc1-1cd0-449a-b280-87c529e33951/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/303986f2-0b17-4589-bf76-ed1461699c3e/body [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/303986f2-0b17-4589-bf76-ed1461699c3e/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/303986f2-0b17-4589-bf76-ed1461699c3e/values [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/303986f2-0b17-4589-bf76-ed1461699c3e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/478443b3-dd69-4719-b79a-b1279f75b8e4/body [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/478443b3-dd69-4719-b79a-b1279f75b8e4/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/478443b3-dd69-4719-b79a-b1279f75b8e4/values [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/478443b3-dd69-4719-b79a-b1279f75b8e4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/85a2d1ac-200a-4ae7-841f-9f4e87795dbf/body [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/85a2d1ac-200a-4ae7-841f-9f4e87795dbf/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/85a2d1ac-200a-4ae7-841f-9f4e87795dbf/values [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/85a2d1ac-200a-4ae7-841f-9f4e87795dbf/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/950ac308-f3e1-4956-885a-e79ce3025fd5/body [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/950ac308-f3e1-4956-885a-e79ce3025fd5/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/950ac308-f3e1-4956-885a-e79ce3025fd5/values [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/950ac308-f3e1-4956-885a-e79ce3025fd5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/f72f8640-2e50-471e-aebe-0ddb8cdd5a2a/body [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/f72f8640-2e50-471e-aebe-0ddb8cdd5a2a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/f72f8640-2e50-471e-aebe-0ddb8cdd5a2a/values [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/comments/f72f8640-2e50-471e-aebe-0ddb8cdd5a2a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/values [moved from .be/bugs/3e331b72-51fd-4408-bc0d-b6c5ac3b9f3e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/40dac9af-951e-4b98-8779-9ba02c37f8a1/comments/e1ff6c81-37d8-43ee-9dcf-17a89e07556a/body [moved from .be/bugs/40dac9af-951e-4b98-8779-9ba02c37f8a1/comments/e1ff6c81-37d8-43ee-9dcf-17a89e07556a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/40dac9af-951e-4b98-8779-9ba02c37f8a1/comments/e1ff6c81-37d8-43ee-9dcf-17a89e07556a/values [moved from .be/bugs/40dac9af-951e-4b98-8779-9ba02c37f8a1/comments/e1ff6c81-37d8-43ee-9dcf-17a89e07556a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/40dac9af-951e-4b98-8779-9ba02c37f8a1/values [moved from .be/bugs/40dac9af-951e-4b98-8779-9ba02c37f8a1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/29ad0d9e-c05b-4793-bb8b-e8bf237f51b3/body [moved from .be/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/29ad0d9e-c05b-4793-bb8b-e8bf237f51b3/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/29ad0d9e-c05b-4793-bb8b-e8bf237f51b3/values [moved from .be/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/29ad0d9e-c05b-4793-bb8b-e8bf237f51b3/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/a92f97a4-e9fe-43f7-bf56-5862b03a2641/body [moved from .be/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/a92f97a4-e9fe-43f7-bf56-5862b03a2641/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/a92f97a4-e9fe-43f7-bf56-5862b03a2641/values [moved from .be/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/comments/a92f97a4-e9fe-43f7-bf56-5862b03a2641/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/values [moved from .be/bugs/427e0ca7-17f5-4a5a-8c68-98cc111a2495/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/47c8fd5f-1f5a-4048-bef7-bb4c9a37c411/values [moved from .be/bugs/47c8fd5f-1f5a-4048-bef7-bb4c9a37c411/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/496edad5-1484-413a-bc68-4b01274a65eb/comments/8d927822-eff9-42c4-9541-8b784b3f7db2/body [moved from .be/bugs/496edad5-1484-413a-bc68-4b01274a65eb/comments/8d927822-eff9-42c4-9541-8b784b3f7db2/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/496edad5-1484-413a-bc68-4b01274a65eb/comments/8d927822-eff9-42c4-9541-8b784b3f7db2/values [moved from .be/bugs/496edad5-1484-413a-bc68-4b01274a65eb/comments/8d927822-eff9-42c4-9541-8b784b3f7db2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/496edad5-1484-413a-bc68-4b01274a65eb/values [moved from .be/bugs/496edad5-1484-413a-bc68-4b01274a65eb/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/0ac3c4cb-90e3-4b67-b6cb-1186d5d66240/body [moved from .be/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/0ac3c4cb-90e3-4b67-b6cb-1186d5d66240/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/0ac3c4cb-90e3-4b67-b6cb-1186d5d66240/values [moved from .be/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/0ac3c4cb-90e3-4b67-b6cb-1186d5d66240/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/942cd941-583d-4020-99e4-80de7e836129/body [moved from .be/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/942cd941-583d-4020-99e4-80de7e836129/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/942cd941-583d-4020-99e4-80de7e836129/values [moved from .be/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/comments/942cd941-583d-4020-99e4-80de7e836129/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/values [moved from .be/bugs/4a4609c8-1882-47de-9d30-fee410b8a802/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4f7a4c3b-31e3-4023-8c9d-e67f627a34f0/comments/a8f35fca-8a15-4833-b568-326f0cc89bfa/body [moved from .be/bugs/4f7a4c3b-31e3-4023-8c9d-e67f627a34f0/comments/a8f35fca-8a15-4833-b568-326f0cc89bfa/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4f7a4c3b-31e3-4023-8c9d-e67f627a34f0/comments/a8f35fca-8a15-4833-b568-326f0cc89bfa/values [moved from .be/bugs/4f7a4c3b-31e3-4023-8c9d-e67f627a34f0/comments/a8f35fca-8a15-4833-b568-326f0cc89bfa/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4f7a4c3b-31e3-4023-8c9d-e67f627a34f0/values [moved from .be/bugs/4f7a4c3b-31e3-4023-8c9d-e67f627a34f0/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/4fc71206-4285-417f-8a3c-ed6fb31bbbda/values [moved from .be/bugs/4fc71206-4285-417f-8a3c-ed6fb31bbbda/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/1ba36272-7ae1-4f95-8002-7b45e62e6790/body [moved from .be/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/1ba36272-7ae1-4f95-8002-7b45e62e6790/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/1ba36272-7ae1-4f95-8002-7b45e62e6790/values [moved from .be/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/1ba36272-7ae1-4f95-8002-7b45e62e6790/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/e173c09a-1b3e-4d8a-a86a-6b8c94a76247/body [moved from .be/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/e173c09a-1b3e-4d8a-a86a-6b8c94a76247/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/e173c09a-1b3e-4d8a-a86a-6b8c94a76247/values [moved from .be/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/comments/e173c09a-1b3e-4d8a-a86a-6b8c94a76247/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/values [moved from .be/bugs/508ea95e-7bc6-4b9b-9e36-a3a87014423d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/d304f93b-faf2-477e-9ff8-c77e301fd9f9/body [moved from .be/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/d304f93b-faf2-477e-9ff8-c77e301fd9f9/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/d304f93b-faf2-477e-9ff8-c77e301fd9f9/values [moved from .be/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/d304f93b-faf2-477e-9ff8-c77e301fd9f9/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/f1479ecf-4154-4cd4-bbd6-0ed6275b9f98/body [moved from .be/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/f1479ecf-4154-4cd4-bbd6-0ed6275b9f98/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/f1479ecf-4154-4cd4-bbd6-0ed6275b9f98/values [moved from .be/bugs/51930348-9ccc-4165-af41-6c7450de050e/comments/f1479ecf-4154-4cd4-bbd6-0ed6275b9f98/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/51930348-9ccc-4165-af41-6c7450de050e/values [moved from .be/bugs/51930348-9ccc-4165-af41-6c7450de050e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/4c50ca0b-a08f-4723-b00d-4bf342cf86b6/body [moved from .be/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/4c50ca0b-a08f-4723-b00d-4bf342cf86b6/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/4c50ca0b-a08f-4723-b00d-4bf342cf86b6/values [moved from .be/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/4c50ca0b-a08f-4723-b00d-4bf342cf86b6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/79fb6ef2-176c-45c0-b898-59c3c3e0aafe/body [moved from .be/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/79fb6ef2-176c-45c0-b898-59c3c3e0aafe/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/79fb6ef2-176c-45c0-b898-59c3c3e0aafe/values [moved from .be/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/79fb6ef2-176c-45c0-b898-59c3c3e0aafe/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/b17a561a-6100-490e-84eb-d1ae4b617940/body [moved from .be/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/b17a561a-6100-490e-84eb-d1ae4b617940/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/b17a561a-6100-490e-84eb-d1ae4b617940/values [moved from .be/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/comments/b17a561a-6100-490e-84eb-d1ae4b617940/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/values [moved from .be/bugs/52034fd0-ec50-424d-b25d-2beaf2d2c317/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/0c40c13a-3515-4b45-a8c3-142cceab9254/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/0c40c13a-3515-4b45-a8c3-142cceab9254/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/0c40c13a-3515-4b45-a8c3-142cceab9254/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/0c40c13a-3515-4b45-a8c3-142cceab9254/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1847f1f8-525a-42c4-ae2b-e9377459d2a6/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1847f1f8-525a-42c4-ae2b-e9377459d2a6/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1847f1f8-525a-42c4-ae2b-e9377459d2a6/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1847f1f8-525a-42c4-ae2b-e9377459d2a6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1f40efc1-6efc-4dd8-bdd2-97907e5aa624/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1f40efc1-6efc-4dd8-bdd2-97907e5aa624/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1f40efc1-6efc-4dd8-bdd2-97907e5aa624/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/1f40efc1-6efc-4dd8-bdd2-97907e5aa624/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2bb7b4d0-6290-4771-9fff-4aa2e8086b1a/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2bb7b4d0-6290-4771-9fff-4aa2e8086b1a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2bb7b4d0-6290-4771-9fff-4aa2e8086b1a/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2bb7b4d0-6290-4771-9fff-4aa2e8086b1a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2c95ee07-462d-42cf-8dc3-8f5389a392cb/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2c95ee07-462d-42cf-8dc3-8f5389a392cb/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2c95ee07-462d-42cf-8dc3-8f5389a392cb/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/2c95ee07-462d-42cf-8dc3-8f5389a392cb/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/31beb504-c72b-4304-95ba-a66d2bcbc46a/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/31beb504-c72b-4304-95ba-a66d2bcbc46a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/31beb504-c72b-4304-95ba-a66d2bcbc46a/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/31beb504-c72b-4304-95ba-a66d2bcbc46a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/49e0425b-3332-4d0e-b371-300eccd55370/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/49e0425b-3332-4d0e-b371-300eccd55370/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/49e0425b-3332-4d0e-b371-300eccd55370/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/49e0425b-3332-4d0e-b371-300eccd55370/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/6e315abe-a080-4369-8729-4aea2dee8494/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/6e315abe-a080-4369-8729-4aea2dee8494/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/6e315abe-a080-4369-8729-4aea2dee8494/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/6e315abe-a080-4369-8729-4aea2dee8494/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/72a519e3-3d6b-4f0f-b412-1310efd255eb/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/72a519e3-3d6b-4f0f-b412-1310efd255eb/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/72a519e3-3d6b-4f0f-b412-1310efd255eb/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/72a519e3-3d6b-4f0f-b412-1310efd255eb/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/744435b7-1521-4059-a55d-f0c403d7b4d8/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/744435b7-1521-4059-a55d-f0c403d7b4d8/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/744435b7-1521-4059-a55d-f0c403d7b4d8/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/744435b7-1521-4059-a55d-f0c403d7b4d8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/96abea83-9867-4c21-8eb8-9e1b1093cba4/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/96abea83-9867-4c21-8eb8-9e1b1093cba4/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/96abea83-9867-4c21-8eb8-9e1b1093cba4/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/96abea83-9867-4c21-8eb8-9e1b1093cba4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a4720227-43cf-49aa-8f9f-f49f46e3e809/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a4720227-43cf-49aa-8f9f-f49f46e3e809/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a4720227-43cf-49aa-8f9f-f49f46e3e809/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a4720227-43cf-49aa-8f9f-f49f46e3e809/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a536cee5-cc8d-4b18-b491-657e0c7998b4/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a536cee5-cc8d-4b18-b491-657e0c7998b4/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a536cee5-cc8d-4b18-b491-657e0c7998b4/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a536cee5-cc8d-4b18-b491-657e0c7998b4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a845096e-3cdf-41ed-a0e3-283439665b92/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a845096e-3cdf-41ed-a0e3-283439665b92/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a845096e-3cdf-41ed-a0e3-283439665b92/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/a845096e-3cdf-41ed-a0e3-283439665b92/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/aad59898-8949-44fb-ad0b-2acea6eb2ef8/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/aad59898-8949-44fb-ad0b-2acea6eb2ef8/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/aad59898-8949-44fb-ad0b-2acea6eb2ef8/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/aad59898-8949-44fb-ad0b-2acea6eb2ef8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ae4f8f1e-6f86-4f81-ba9f-4042deb2ee68/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ae4f8f1e-6f86-4f81-ba9f-4042deb2ee68/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ae4f8f1e-6f86-4f81-ba9f-4042deb2ee68/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ae4f8f1e-6f86-4f81-ba9f-4042deb2ee68/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/b19a8f6a-1d7b-4887-a9df-123d59b0cd9b/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/b19a8f6a-1d7b-4887-a9df-123d59b0cd9b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/b19a8f6a-1d7b-4887-a9df-123d59b0cd9b/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/b19a8f6a-1d7b-4887-a9df-123d59b0cd9b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/c35835c0-8f9f-4090-ba92-1f616867e486/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/c35835c0-8f9f-4090-ba92-1f616867e486/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/c35835c0-8f9f-4090-ba92-1f616867e486/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/c35835c0-8f9f-4090-ba92-1f616867e486/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ea01c122-e629-4d5c-afa7-b180f4a8748b/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ea01c122-e629-4d5c-afa7-b180f4a8748b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ea01c122-e629-4d5c-afa7-b180f4a8748b/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ea01c122-e629-4d5c-afa7-b180f4a8748b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f925e56f-26f9-4620-82fb-a0f160f27921/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f925e56f-26f9-4620-82fb-a0f160f27921/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f925e56f-26f9-4620-82fb-a0f160f27921/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f925e56f-26f9-4620-82fb-a0f160f27921/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f92c6180-0ed8-4acc-8ced-22995a0c016b/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f92c6180-0ed8-4acc-8ced-22995a0c016b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f92c6180-0ed8-4acc-8ced-22995a0c016b/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/f92c6180-0ed8-4acc-8ced-22995a0c016b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/fdb615a4-168a-467b-8090-875c998455e5/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/fdb615a4-168a-467b-8090-875c998455e5/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/fdb615a4-168a-467b-8090-875c998455e5/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/fdb615a4-168a-467b-8090-875c998455e5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ffbf5ac9-e2f5-47ab-9c3c-33989c81ad42/body [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ffbf5ac9-e2f5-47ab-9c3c-33989c81ad42/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ffbf5ac9-e2f5-47ab-9c3c-33989c81ad42/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/comments/ffbf5ac9-e2f5-47ab-9c3c-33989c81ad42/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/values [moved from .be/bugs/529c290e-b1cf-4800-be7e-68f1ecb9565c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/0a995544-20dc-42a6-8d3f-348ebbc8921e/body [moved from .be/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/0a995544-20dc-42a6-8d3f-348ebbc8921e/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/0a995544-20dc-42a6-8d3f-348ebbc8921e/values [moved from .be/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/0a995544-20dc-42a6-8d3f-348ebbc8921e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/4068c833-0c06-475e-8b7e-6701bc416dee/body [moved from .be/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/4068c833-0c06-475e-8b7e-6701bc416dee/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/4068c833-0c06-475e-8b7e-6701bc416dee/values [moved from .be/bugs/56506b73-36cc-4e32-a578-258a219edba8/comments/4068c833-0c06-475e-8b7e-6701bc416dee/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/56506b73-36cc-4e32-a578-258a219edba8/values [moved from .be/bugs/56506b73-36cc-4e32-a578-258a219edba8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/72dab0c4-f04d-4ff0-9319-f55aafaea627/body [moved from .be/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/72dab0c4-f04d-4ff0-9319-f55aafaea627/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/72dab0c4-f04d-4ff0-9319-f55aafaea627/values [moved from .be/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/72dab0c4-f04d-4ff0-9319-f55aafaea627/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/c454aa67-ca30-43e8-9be4-58cbddd01b63/body [moved from .be/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/c454aa67-ca30-43e8-9be4-58cbddd01b63/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/c454aa67-ca30-43e8-9be4-58cbddd01b63/values [moved from .be/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/c454aa67-ca30-43e8-9be4-58cbddd01b63/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/d83a5436-85e3-42c7-9a89-a6d50df9d279/body [moved from .be/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/d83a5436-85e3-42c7-9a89-a6d50df9d279/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/d83a5436-85e3-42c7-9a89-a6d50df9d279/values [moved from .be/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/comments/d83a5436-85e3-42c7-9a89-a6d50df9d279/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/values [moved from .be/bugs/576e804a-8b76-4876-8e9d-d7a72b0aef10/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/8015d736-f3ea-4085-940c-552c01a287ef/body [moved from .be/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/8015d736-f3ea-4085-940c-552c01a287ef/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/8015d736-f3ea-4085-940c-552c01a287ef/values [moved from .be/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/8015d736-f3ea-4085-940c-552c01a287ef/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/eff20807-07f0-444d-8992-f69ab3f526c5/body [moved from .be/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/eff20807-07f0-444d-8992-f69ab3f526c5/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/eff20807-07f0-444d-8992-f69ab3f526c5/values [moved from .be/bugs/597a7386-643f-4559-8dc4-6871924229b6/comments/eff20807-07f0-444d-8992-f69ab3f526c5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/597a7386-643f-4559-8dc4-6871924229b6/values [moved from .be/bugs/597a7386-643f-4559-8dc4-6871924229b6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/62a74b85-0d4b-49f5-8794-74bafd871cd4/values [moved from .be/bugs/62a74b85-0d4b-49f5-8794-74bafd871cd4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/65776f00-34d8-4b58-874d-333196a5e245/values [moved from .be/bugs/65776f00-34d8-4b58-874d-333196a5e245/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/6622c06a-ed84-4d45-8011-a082fca219b6/values [moved from .be/bugs/6622c06a-ed84-4d45-8011-a082fca219b6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/68ba7f0c-ca5f-4f49-a508-e39150c07e13/comments/be64734c-d9a8-4f6d-83eb-e9b6c9adc0bf/body [moved from .be/bugs/68ba7f0c-ca5f-4f49-a508-e39150c07e13/comments/be64734c-d9a8-4f6d-83eb-e9b6c9adc0bf/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/68ba7f0c-ca5f-4f49-a508-e39150c07e13/comments/be64734c-d9a8-4f6d-83eb-e9b6c9adc0bf/values [moved from .be/bugs/68ba7f0c-ca5f-4f49-a508-e39150c07e13/comments/be64734c-d9a8-4f6d-83eb-e9b6c9adc0bf/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/68ba7f0c-ca5f-4f49-a508-e39150c07e13/values [moved from .be/bugs/68ba7f0c-ca5f-4f49-a508-e39150c07e13/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/6eb8141f-b0b1-4d5b-b4e6-d0860d844ada/comments/f2011471-56cb-46e2-813b-1ac336ee7bbc/body [moved from .be/bugs/6eb8141f-b0b1-4d5b-b4e6-d0860d844ada/comments/f2011471-56cb-46e2-813b-1ac336ee7bbc/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/6eb8141f-b0b1-4d5b-b4e6-d0860d844ada/comments/f2011471-56cb-46e2-813b-1ac336ee7bbc/values [moved from .be/bugs/6eb8141f-b0b1-4d5b-b4e6-d0860d844ada/comments/f2011471-56cb-46e2-813b-1ac336ee7bbc/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/6eb8141f-b0b1-4d5b-b4e6-d0860d844ada/values [moved from .be/bugs/6eb8141f-b0b1-4d5b-b4e6-d0860d844ada/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/73a767f4-75e7-4cde-9e24-91bff99ab428/values [moved from .be/bugs/73a767f4-75e7-4cde-9e24-91bff99ab428/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/74cccfbf-069d-4e99-8cab-adaa35f9a2eb/values [moved from .be/bugs/74cccfbf-069d-4e99-8cab-adaa35f9a2eb/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/764b812f-a0bb-4f4d-8e2f-c255c9474a0e/values [moved from .be/bugs/764b812f-a0bb-4f4d-8e2f-c255c9474a0e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/db2c18d9-9573-4d68-88a5-ee47ed24b813/body [moved from .be/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/db2c18d9-9573-4d68-88a5-ee47ed24b813/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/db2c18d9-9573-4d68-88a5-ee47ed24b813/values [moved from .be/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/db2c18d9-9573-4d68-88a5-ee47ed24b813/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/ec16300f-529a-4492-8327-f9a72e4447c2/body [moved from .be/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/ec16300f-529a-4492-8327-f9a72e4447c2/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/ec16300f-529a-4492-8327-f9a72e4447c2/values [moved from .be/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/comments/ec16300f-529a-4492-8327-f9a72e4447c2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/values [moved from .be/bugs/7ba4bc51-b251-483a-a67a-f1b89c83f6af/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/2f6b71c5-45b3-473f-bd14-a1fe41bafcee/body [moved from .be/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/2f6b71c5-45b3-473f-bd14-a1fe41bafcee/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/2f6b71c5-45b3-473f-bd14-a1fe41bafcee/values [moved from .be/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/2f6b71c5-45b3-473f-bd14-a1fe41bafcee/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/5a6b44f5-9d1d-4e2e-a42c-f5423c43a1dc/body [moved from .be/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/5a6b44f5-9d1d-4e2e-a42c-f5423c43a1dc/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/5a6b44f5-9d1d-4e2e-a42c-f5423c43a1dc/values [moved from .be/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/comments/5a6b44f5-9d1d-4e2e-a42c-f5423c43a1dc/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/values [moved from .be/bugs/7bfc591e-584a-476e-8e11-b548f1afcaa6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7d182ab9-9c0c-4b4f-885e-c5762d7a2437/values [moved from .be/bugs/7d182ab9-9c0c-4b4f-885e-c5762d7a2437/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/401950a0-a5ff-46f3-afac-a9cfb300f94b/body [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/401950a0-a5ff-46f3-afac-a9cfb300f94b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/401950a0-a5ff-46f3-afac-a9cfb300f94b/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/401950a0-a5ff-46f3-afac-a9cfb300f94b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/6010e186-0260-44e5-8442-8df2269910ce/body [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/6010e186-0260-44e5-8442-8df2269910ce/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/6010e186-0260-44e5-8442-8df2269910ce/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/6010e186-0260-44e5-8442-8df2269910ce/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/80780fa9-69f8-438c-8fbf-5a702b3badc1/body [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/80780fa9-69f8-438c-8fbf-5a702b3badc1/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/80780fa9-69f8-438c-8fbf-5a702b3badc1/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/80780fa9-69f8-438c-8fbf-5a702b3badc1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/bb988ed4-d3d5-4e49-b67e-c7ccb8ae44d3/body [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/bb988ed4-d3d5-4e49-b67e-c7ccb8ae44d3/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/bb988ed4-d3d5-4e49-b67e-c7ccb8ae44d3/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/bb988ed4-d3d5-4e49-b67e-c7ccb8ae44d3/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/body [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/c2b78df3-641a-4d4d-ba94-33b26eda6364/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/ec133a4e-c9ff-4499-b469-cb0a2ca9a685/body [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/ec133a4e-c9ff-4499-b469-cb0a2ca9a685/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/ec133a4e-c9ff-4499-b469-cb0a2ca9a685/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/ec133a4e-c9ff-4499-b469-cb0a2ca9a685/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/f87fd684-6af1-498d-98d5-f915bcee76a9/body [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/f87fd684-6af1-498d-98d5-f915bcee76a9/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/f87fd684-6af1-498d-98d5-f915bcee76a9/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/comments/f87fd684-6af1-498d-98d5-f915bcee76a9/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/values [moved from .be/bugs/7ec2c071-9630-42b0-b08a-9854616f9144/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8385a1fb-63df-4ca6-81cd-28ede83bb0c2/values [moved from .be/bugs/8385a1fb-63df-4ca6-81cd-28ede83bb0c2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/4d642e39-a8f3-41d8-93da-bea7e05ef9a6/body [moved from .be/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/4d642e39-a8f3-41d8-93da-bea7e05ef9a6/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/4d642e39-a8f3-41d8-93da-bea7e05ef9a6/values [moved from .be/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/4d642e39-a8f3-41d8-93da-bea7e05ef9a6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/bf0c3752-6338-4919-93ba-4c9252945fb1/body [moved from .be/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/bf0c3752-6338-4919-93ba-4c9252945fb1/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/bf0c3752-6338-4919-93ba-4c9252945fb1/values [moved from .be/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/comments/bf0c3752-6338-4919-93ba-4c9252945fb1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/values [moved from .be/bugs/8e1bbda4-35b6-4579-849d-117b1596ee99/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/13e88b64-117b-4f8b-8cba-8f4a9bc394f5/body [moved from .be/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/13e88b64-117b-4f8b-8cba-8f4a9bc394f5/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/13e88b64-117b-4f8b-8cba-8f4a9bc394f5/values [moved from .be/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/13e88b64-117b-4f8b-8cba-8f4a9bc394f5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/2ae039de-5b0d-4a4f-aa80-6c81d1345367/body [moved from .be/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/2ae039de-5b0d-4a4f-aa80-6c81d1345367/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/2ae039de-5b0d-4a4f-aa80-6c81d1345367/values [moved from .be/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/2ae039de-5b0d-4a4f-aa80-6c81d1345367/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/a492508e-0be7-4403-bbd0-9cdc0a46b06b/body [moved from .be/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/a492508e-0be7-4403-bbd0-9cdc0a46b06b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/a492508e-0be7-4403-bbd0-9cdc0a46b06b/values [moved from .be/bugs/8e83da06-26f1-4763-a972-dae7e7062233/comments/a492508e-0be7-4403-bbd0-9cdc0a46b06b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e83da06-26f1-4763-a972-dae7e7062233/values [moved from .be/bugs/8e83da06-26f1-4763-a972-dae7e7062233/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/3e7144eb-c934-4b62-94b7-7dbfa90ed6ee/body [moved from .be/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/3e7144eb-c934-4b62-94b7-7dbfa90ed6ee/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/3e7144eb-c934-4b62-94b7-7dbfa90ed6ee/values [moved from .be/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/3e7144eb-c934-4b62-94b7-7dbfa90ed6ee/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/7d7e703f-22f2-4c47-86a3-fcc3c8ead576/body [moved from .be/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/7d7e703f-22f2-4c47-86a3-fcc3c8ead576/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/7d7e703f-22f2-4c47-86a3-fcc3c8ead576/values [moved from .be/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/comments/7d7e703f-22f2-4c47-86a3-fcc3c8ead576/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/values [moved from .be/bugs/8e948522-c6a1-4c97-af93-2cf4090f44b5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/209e2a60-ddd0-4a71-90ef-e57547ed6d76/body [moved from .be/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/209e2a60-ddd0-4a71-90ef-e57547ed6d76/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/209e2a60-ddd0-4a71-90ef-e57547ed6d76/values [moved from .be/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/209e2a60-ddd0-4a71-90ef-e57547ed6d76/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/37650981-1908-4c39-bae2-48e69c771120/body [moved from .be/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/37650981-1908-4c39-bae2-48e69c771120/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/37650981-1908-4c39-bae2-48e69c771120/values [moved from .be/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/comments/37650981-1908-4c39-bae2-48e69c771120/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/values [moved from .be/bugs/9a942b1d-a3b5-441d-8aef-b844700e1efa/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9b1a0e71-4f7d-40b1-ab32-18496bf19a3f/values [moved from .be/bugs/9b1a0e71-4f7d-40b1-ab32-18496bf19a3f/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/095ade7c-9378-41bd-8137-f2731c6afcac/body [moved from .be/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/095ade7c-9378-41bd-8137-f2731c6afcac/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/095ade7c-9378-41bd-8137-f2731c6afcac/values [moved from .be/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/095ade7c-9378-41bd-8137-f2731c6afcac/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/4be35966-373b-438c-a35a-824f5c7a940a/body [moved from .be/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/4be35966-373b-438c-a35a-824f5c7a940a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/4be35966-373b-438c-a35a-824f5c7a940a/values [moved from .be/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/4be35966-373b-438c-a35a-824f5c7a940a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/d81d0df9-e6d9-4fe8-8dbe-989ef2c81f00/body [moved from .be/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/d81d0df9-e6d9-4fe8-8dbe-989ef2c81f00/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/d81d0df9-e6d9-4fe8-8dbe-989ef2c81f00/values [moved from .be/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/comments/d81d0df9-e6d9-4fe8-8dbe-989ef2c81f00/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/values [moved from .be/bugs/9ce2f015-8ea0-43a5-a03d-fc36f6d202fe/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9daa72ee-0721-4f68-99ee-f06fec0b340e/values [moved from .be/bugs/9daa72ee-0721-4f68-99ee-f06fec0b340e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/9f910ee0-ff0f-4fa3-b1e3-79a4118e48e9/values [moved from .be/bugs/9f910ee0-ff0f-4fa3-b1e3-79a4118e48e9/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1/body [moved from .be/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1/values [moved from .be/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/body [moved from .be/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/values [moved from .be/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/25c67b0b-1afd-4613-a787-e0f018614966/body [moved from .be/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/25c67b0b-1afd-4613-a787-e0f018614966/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/25c67b0b-1afd-4613-a787-e0f018614966/values [moved from .be/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/comments/25c67b0b-1afd-4613-a787-e0f018614966/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/values [moved from .be/bugs/a403de79-8f39-41f2-b9ec-15053b175ee2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/3415fbd7-5a7e-4a7f-af30-82f8ce6ca85b/body [moved from .be/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/3415fbd7-5a7e-4a7f-af30-82f8ce6ca85b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/3415fbd7-5a7e-4a7f-af30-82f8ce6ca85b/values [moved from .be/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/3415fbd7-5a7e-4a7f-af30-82f8ce6ca85b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/b0e7165b-7099-45ca-9513-412225f7bd52/body [moved from .be/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/b0e7165b-7099-45ca-9513-412225f7bd52/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/b0e7165b-7099-45ca-9513-412225f7bd52/values [moved from .be/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/comments/b0e7165b-7099-45ca-9513-412225f7bd52/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/values [moved from .be/bugs/a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/a63bd76a-cd43-4f97-88ba-2323546d4572/values [moved from .be/bugs/a63bd76a-cd43-4f97-88ba-2323546d4572/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/2628eeca-96c6-4933-8484-d55bb1dbf985/body [moved from .be/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/2628eeca-96c6-4933-8484-d55bb1dbf985/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/2628eeca-96c6-4933-8484-d55bb1dbf985/values [moved from .be/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/2628eeca-96c6-4933-8484-d55bb1dbf985/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/942cd941-583d-4020-99e4-80de7e836129/body [moved from .be/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/942cd941-583d-4020-99e4-80de7e836129/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/942cd941-583d-4020-99e4-80de7e836129/values [moved from .be/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/942cd941-583d-4020-99e4-80de7e836129/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/ae0f9aea-960c-42b4-82df-943bbbe17d58/body [moved from .be/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/ae0f9aea-960c-42b4-82df-943bbbe17d58/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/ae0f9aea-960c-42b4-82df-943bbbe17d58/values [moved from .be/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/comments/ae0f9aea-960c-42b4-82df-943bbbe17d58/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/values [moved from .be/bugs/ae998b27-a11b-4243-abf6-11841e5b8242/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b187fbce-fb10-4819-ace2-c8b0b4a45c57/comments/e757d2ae-085a-4539-99be-096386de5352/body [moved from .be/bugs/b187fbce-fb10-4819-ace2-c8b0b4a45c57/comments/e757d2ae-085a-4539-99be-096386de5352/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b187fbce-fb10-4819-ace2-c8b0b4a45c57/comments/e757d2ae-085a-4539-99be-096386de5352/values [moved from .be/bugs/b187fbce-fb10-4819-ace2-c8b0b4a45c57/comments/e757d2ae-085a-4539-99be-096386de5352/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b187fbce-fb10-4819-ace2-c8b0b4a45c57/values [moved from .be/bugs/b187fbce-fb10-4819-ace2-c8b0b4a45c57/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b1bc6f39-8166-46c5-a724-4c4a3e1e7d74/values [moved from .be/bugs/b1bc6f39-8166-46c5-a724-4c4a3e1e7d74/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b3c6da51-3a30-42c9-8c75-587c7a1705c5/values [moved from .be/bugs/b3c6da51-3a30-42c9-8c75-587c7a1705c5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b8d95763-1825-4e09-bf52-cbd884b916af/comments/ae56365e-7a9c-4cc3-ba67-7addbeeeff49/body [moved from .be/bugs/b8d95763-1825-4e09-bf52-cbd884b916af/comments/ae56365e-7a9c-4cc3-ba67-7addbeeeff49/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b8d95763-1825-4e09-bf52-cbd884b916af/comments/ae56365e-7a9c-4cc3-ba67-7addbeeeff49/values [moved from .be/bugs/b8d95763-1825-4e09-bf52-cbd884b916af/comments/ae56365e-7a9c-4cc3-ba67-7addbeeeff49/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/b8d95763-1825-4e09-bf52-cbd884b916af/values [moved from .be/bugs/b8d95763-1825-4e09-bf52-cbd884b916af/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/bd0ebb56-fb46-45bc-af08-1e4a94e8ef3c/values [moved from .be/bugs/bd0ebb56-fb46-45bc-af08-1e4a94e8ef3c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c271a802-d324-48a6-b01d-63e4a72aa43e/comments/06e45775-1c46-4793-a34e-2cc86a8db097/body [moved from .be/bugs/c271a802-d324-48a6-b01d-63e4a72aa43e/comments/06e45775-1c46-4793-a34e-2cc86a8db097/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c271a802-d324-48a6-b01d-63e4a72aa43e/comments/06e45775-1c46-4793-a34e-2cc86a8db097/values [moved from .be/bugs/c271a802-d324-48a6-b01d-63e4a72aa43e/comments/06e45775-1c46-4793-a34e-2cc86a8db097/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c271a802-d324-48a6-b01d-63e4a72aa43e/values [moved from .be/bugs/c271a802-d324-48a6-b01d-63e4a72aa43e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/04d71e10-9e44-4006-ab37-b4cc71647671/body [moved from .be/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/04d71e10-9e44-4006-ab37-b4cc71647671/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/04d71e10-9e44-4006-ab37-b4cc71647671/values [moved from .be/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/04d71e10-9e44-4006-ab37-b4cc71647671/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/1cb7063f-07ce-4a76-98f9-d184e1ee7282/body [moved from .be/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/1cb7063f-07ce-4a76-98f9-d184e1ee7282/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/1cb7063f-07ce-4a76-98f9-d184e1ee7282/values [moved from .be/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/comments/1cb7063f-07ce-4a76-98f9-d184e1ee7282/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/values [moved from .be/bugs/c45e5ece-63e3-4fd2-b33f-0bfd06820cf4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/2ca25dd6-e9d1-4581-bd29-50f2eaa32fe4/body [moved from .be/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/2ca25dd6-e9d1-4581-bd29-50f2eaa32fe4/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/2ca25dd6-e9d1-4581-bd29-50f2eaa32fe4/values [moved from .be/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/2ca25dd6-e9d1-4581-bd29-50f2eaa32fe4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/acbecd72-988c-4899-a340-fea370ce15a8/body [moved from .be/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/acbecd72-988c-4899-a340-fea370ce15a8/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/acbecd72-988c-4899-a340-fea370ce15a8/values [moved from .be/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/acbecd72-988c-4899-a340-fea370ce15a8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/b3fabbe0-f05d-42a1-9037-e59e628a83e2/body [moved from .be/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/b3fabbe0-f05d-42a1-9037-e59e628a83e2/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/b3fabbe0-f05d-42a1-9037-e59e628a83e2/values [moved from .be/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/comments/b3fabbe0-f05d-42a1-9037-e59e628a83e2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/values [moved from .be/bugs/c4ea43d5-4964-49ea-a1eb-2bab2bde8e2e/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c592a1e8-f2c8-4dfb-8550-955123073947/values [moved from .be/bugs/c592a1e8-f2c8-4dfb-8550-955123073947/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/22348320-40d3-422c-bdf0-0f6a6bde3fab/body [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/22348320-40d3-422c-bdf0-0f6a6bde3fab/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/22348320-40d3-422c-bdf0-0f6a6bde3fab/values [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/22348320-40d3-422c-bdf0-0f6a6bde3fab/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/354dcfc6-5997-4ffe-b7a0-baa852213539/body [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/354dcfc6-5997-4ffe-b7a0-baa852213539/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/354dcfc6-5997-4ffe-b7a0-baa852213539/values [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/354dcfc6-5997-4ffe-b7a0-baa852213539/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/c129067c-2341-4e7a-92a6-2dcd30d3bbf5/body [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/c129067c-2341-4e7a-92a6-2dcd30d3bbf5/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/c129067c-2341-4e7a-92a6-2dcd30d3bbf5/values [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/c129067c-2341-4e7a-92a6-2dcd30d3bbf5/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/f847c981-873e-41ae-b5ce-83dfe60b9afe/body [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/f847c981-873e-41ae-b5ce-83dfe60b9afe/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/f847c981-873e-41ae-b5ce-83dfe60b9afe/values [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/comments/f847c981-873e-41ae-b5ce-83dfe60b9afe/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c76d7899-d495-4103-9355-012c0a6fece3/values [moved from .be/bugs/c76d7899-d495-4103-9355-012c0a6fece3/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/body [moved from .be/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/values [moved from .be/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/208595bd-35b8-44c2-bf97-fc5ef9e7a58d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/25c67b0b-1afd-4613-a787-e0f018614966/body [moved from .be/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/25c67b0b-1afd-4613-a787-e0f018614966/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/25c67b0b-1afd-4613-a787-e0f018614966/values [moved from .be/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/25c67b0b-1afd-4613-a787-e0f018614966/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/7dfdf230-231b-43e0-9b46-58d4d18eded1/body [moved from .be/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/7dfdf230-231b-43e0-9b46-58d4d18eded1/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/7dfdf230-231b-43e0-9b46-58d4d18eded1/values [moved from .be/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/comments/7dfdf230-231b-43e0-9b46-58d4d18eded1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/values [moved from .be/bugs/c894f10f-197d-4b22-9c5b-19f394df40d4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/cb56c990-a757-4aef-9888-a30918a7b3d7/values [moved from .be/bugs/cb56c990-a757-4aef-9888-a30918a7b3d7/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/0e5fab2a-66eb-4f7d-979f-b50181f604d4/body [moved from .be/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/0e5fab2a-66eb-4f7d-979f-b50181f604d4/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/0e5fab2a-66eb-4f7d-979f-b50181f604d4/values [moved from .be/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/0e5fab2a-66eb-4f7d-979f-b50181f604d4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/f05359f6-1bfc-4aa6-9a6d-673516bc0f94/body [moved from .be/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/f05359f6-1bfc-4aa6-9a6d-673516bc0f94/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/f05359f6-1bfc-4aa6-9a6d-673516bc0f94/values [moved from .be/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/comments/f05359f6-1bfc-4aa6-9a6d-673516bc0f94/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/values [moved from .be/bugs/cf56e648-3b09-4131-8847-02dff12b4db2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/cf77c72d-b099-413a-802e-a8892ac8c26b/values [moved from .be/bugs/cf77c72d-b099-413a-802e-a8892ac8c26b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d8dba78d-f82a-4674-9003-a0ec569b4a96/comments/5b2e1ec8-3bb7-40cd-9f4f-74e5c59838f6/body [moved from .be/bugs/d8dba78d-f82a-4674-9003-a0ec569b4a96/comments/5b2e1ec8-3bb7-40cd-9f4f-74e5c59838f6/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d8dba78d-f82a-4674-9003-a0ec569b4a96/comments/5b2e1ec8-3bb7-40cd-9f4f-74e5c59838f6/values [moved from .be/bugs/d8dba78d-f82a-4674-9003-a0ec569b4a96/comments/5b2e1ec8-3bb7-40cd-9f4f-74e5c59838f6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d8dba78d-f82a-4674-9003-a0ec569b4a96/values [moved from .be/bugs/d8dba78d-f82a-4674-9003-a0ec569b4a96/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/00c6f4d8-f965-4d2f-a652-17e58c20ab8c/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/00c6f4d8-f965-4d2f-a652-17e58c20ab8c/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/00c6f4d8-f965-4d2f-a652-17e58c20ab8c/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/00c6f4d8-f965-4d2f-a652-17e58c20ab8c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/16357f68-19c0-4bf9-8220-b88b52b3456d/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/16357f68-19c0-4bf9-8220-b88b52b3456d/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/16357f68-19c0-4bf9-8220-b88b52b3456d/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/16357f68-19c0-4bf9-8220-b88b52b3456d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/1f25cba2-03ee-43e1-a042-ef6724938ad8/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/1f25cba2-03ee-43e1-a042-ef6724938ad8/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/1f25cba2-03ee-43e1-a042-ef6724938ad8/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/1f25cba2-03ee-43e1-a042-ef6724938ad8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/21c90231-d7f2-49bb-97d9-99e16459d799/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/21c90231-d7f2-49bb-97d9-99e16459d799/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/21c90231-d7f2-49bb-97d9-99e16459d799/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/21c90231-d7f2-49bb-97d9-99e16459d799/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/2496ccca-130b-4459-bfae-9d9ef0138177/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/2496ccca-130b-4459-bfae-9d9ef0138177/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/2496ccca-130b-4459-bfae-9d9ef0138177/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/2496ccca-130b-4459-bfae-9d9ef0138177/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/42d57a41-219f-46db-9fda-21b42351da63/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/42d57a41-219f-46db-9fda-21b42351da63/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/42d57a41-219f-46db-9fda-21b42351da63/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/42d57a41-219f-46db-9fda-21b42351da63/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/5e339bac-f4f3-407b-974a-b88795d3573b/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/5e339bac-f4f3-407b-974a-b88795d3573b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/5e339bac-f4f3-407b-974a-b88795d3573b/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/5e339bac-f4f3-407b-974a-b88795d3573b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/7fa903a3-f9e6-4e4d-8128-0f26e1ce664b/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/7fa903a3-f9e6-4e4d-8128-0f26e1ce664b/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/7fa903a3-f9e6-4e4d-8128-0f26e1ce664b/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/7fa903a3-f9e6-4e4d-8128-0f26e1ce664b/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/e249e2aa-2029-4a96-bc84-962366e07fd6/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/e249e2aa-2029-4a96-bc84-962366e07fd6/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/e249e2aa-2029-4a96-bc84-962366e07fd6/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/e249e2aa-2029-4a96-bc84-962366e07fd6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/fa60ce1f-a809-4fb3-a2cd-1a2e0bdd0e0a/body [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/fa60ce1f-a809-4fb3-a2cd-1a2e0bdd0e0a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/fa60ce1f-a809-4fb3-a2cd-1a2e0bdd0e0a/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/comments/fa60ce1f-a809-4fb3-a2cd-1a2e0bdd0e0a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/d9959864-ea91-475a-a075-f39aa6760f98/values [moved from .be/bugs/d9959864-ea91-475a-a075-f39aa6760f98/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/da2b09ff-af24-40f3-9b8d-6ffaa5f41164/values [moved from .be/bugs/da2b09ff-af24-40f3-9b8d-6ffaa5f41164/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/1182d8e6-5e87-4d0a-b271-c298c36bbc21/body [moved from .be/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/1182d8e6-5e87-4d0a-b271-c298c36bbc21/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/1182d8e6-5e87-4d0a-b271-c298c36bbc21/values [moved from .be/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/1182d8e6-5e87-4d0a-b271-c298c36bbc21/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/8097468f-87a9-4d84-ac20-1772393bb54d/body [moved from .be/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/8097468f-87a9-4d84-ac20-1772393bb54d/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/8097468f-87a9-4d84-ac20-1772393bb54d/values [moved from .be/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/comments/8097468f-87a9-4d84-ac20-1772393bb54d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/values [moved from .be/bugs/dac91856-cb6a-4f69-8c03-38ff0b29aab2/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dba25cfd-aa15-457c-903a-b53ecb5a3b2c/values [moved from .be/bugs/dba25cfd-aa15-457c-903a-b53ecb5a3b2c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dcca51b3-bf8f-4482-8f67-662cfbcb9c6c/comments/d4a87066-c5f4-49f1-9bd9-a872c8e4ffe6/body [moved from .be/bugs/dcca51b3-bf8f-4482-8f67-662cfbcb9c6c/comments/d4a87066-c5f4-49f1-9bd9-a872c8e4ffe6/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dcca51b3-bf8f-4482-8f67-662cfbcb9c6c/comments/d4a87066-c5f4-49f1-9bd9-a872c8e4ffe6/values [moved from .be/bugs/dcca51b3-bf8f-4482-8f67-662cfbcb9c6c/comments/d4a87066-c5f4-49f1-9bd9-a872c8e4ffe6/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/dcca51b3-bf8f-4482-8f67-662cfbcb9c6c/values [moved from .be/bugs/dcca51b3-bf8f-4482-8f67-662cfbcb9c6c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0155831-499f-421a-ad02-cd15fc3fecf1/values [moved from .be/bugs/e0155831-499f-421a-ad02-cd15fc3fecf1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/09f950d4-9366-4e7b-98b3-9057999f8f38/body [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/09f950d4-9366-4e7b-98b3-9057999f8f38/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/09f950d4-9366-4e7b-98b3-9057999f8f38/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/09f950d4-9366-4e7b-98b3-9057999f8f38/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/704b37ab-01bb-43d3-9e9f-f0d354f63c7d/body [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/704b37ab-01bb-43d3-9e9f-f0d354f63c7d/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/704b37ab-01bb-43d3-9e9f-f0d354f63c7d/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/704b37ab-01bb-43d3-9e9f-f0d354f63c7d/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/7b904395-86e9-4eb1-8534-69cec63801d4/body [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/7b904395-86e9-4eb1-8534-69cec63801d4/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/7b904395-86e9-4eb1-8534-69cec63801d4/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/7b904395-86e9-4eb1-8534-69cec63801d4/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/a0e846ed-1549-4ec3-b94d-391e54610f61/body [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/a0e846ed-1549-4ec3-b94d-391e54610f61/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/a0e846ed-1549-4ec3-b94d-391e54610f61/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/a0e846ed-1549-4ec3-b94d-391e54610f61/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/cfd7cbc7-27ad-4618-8530-cb4d7323514a/body [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/cfd7cbc7-27ad-4618-8530-cb4d7323514a/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/cfd7cbc7-27ad-4618-8530-cb4d7323514a/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/cfd7cbc7-27ad-4618-8530-cb4d7323514a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/f1cde826-0506-4b4a-92ab-8499e953fa49/body [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/f1cde826-0506-4b4a-92ab-8499e953fa49/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/f1cde826-0506-4b4a-92ab-8499e953fa49/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/f1cde826-0506-4b4a-92ab-8499e953fa49/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/fba8de97-9c61-4a08-b3e7-d8a95d6efe54/body [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/fba8de97-9c61-4a08-b3e7-d8a95d6efe54/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/fba8de97-9c61-4a08-b3e7-d8a95d6efe54/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/comments/fba8de97-9c61-4a08-b3e7-d8a95d6efe54/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/values [moved from .be/bugs/e0858b12-0be3-49bb-ad7a-030e488bb2f1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/bcd6e5d4-8d03-43ad-a10d-17619735d077/body [moved from .be/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/bcd6e5d4-8d03-43ad-a10d-17619735d077/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/bcd6e5d4-8d03-43ad-a10d-17619735d077/values [moved from .be/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/bcd6e5d4-8d03-43ad-a10d-17619735d077/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/e5decfc6-050b-4283-8776-977bf85b2c99/body [moved from .be/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/e5decfc6-050b-4283-8776-977bf85b2c99/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/e5decfc6-050b-4283-8776-977bf85b2c99/values [moved from .be/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/comments/e5decfc6-050b-4283-8776-977bf85b2c99/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/values [moved from .be/bugs/e2f6514c-5f9f-4734-a537-daf3fbe7e9a0/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/07fc448f-c42e-4846-929a-8924de485766/body [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/07fc448f-c42e-4846-929a-8924de485766/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/07fc448f-c42e-4846-929a-8924de485766/values [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/07fc448f-c42e-4846-929a-8924de485766/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/520a9829-8d90-43ce-be64-868b8321e5b0/body [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/520a9829-8d90-43ce-be64-868b8321e5b0/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/520a9829-8d90-43ce-be64-868b8321e5b0/values [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/520a9829-8d90-43ce-be64-868b8321e5b0/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/8b54e56e-c693-4594-998f-5bd6c1f385d7/body [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/8b54e56e-c693-4594-998f-5bd6c1f385d7/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/8b54e56e-c693-4594-998f-5bd6c1f385d7/values [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/8b54e56e-c693-4594-998f-5bd6c1f385d7/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/bb124fd9-08f5-4f82-a035-6355e8403075/body [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/bb124fd9-08f5-4f82-a035-6355e8403075/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/bb124fd9-08f5-4f82-a035-6355e8403075/values [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/bb124fd9-08f5-4f82-a035-6355e8403075/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/faa686bf-c0eb-48bf-8a0b-d9a2e02bd132/body [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/faa686bf-c0eb-48bf-8a0b-d9a2e02bd132/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/faa686bf-c0eb-48bf-8a0b-d9a2e02bd132/values [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/comments/faa686bf-c0eb-48bf-8a0b-d9a2e02bd132/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/values [moved from .be/bugs/e4ed63f6-9000-4d0b-98c3-487269140141/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ecc91b94-7f3f-44a7-af58-03191d327a7f/values [moved from .be/bugs/ecc91b94-7f3f-44a7-af58-03191d327a7f/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/ee681951-f254-43d3-a53a-1b36ae415d5c/values [moved from .be/bugs/ee681951-f254-43d3-a53a-1b36ae415d5c/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f51dc5a7-37b7-4ce1-859a-b7cb58be6494/values [moved from .be/bugs/f51dc5a7-37b7-4ce1-859a-b7cb58be6494/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f5c06914-dc64-4658-8ec7-32a026a53f55/values [moved from .be/bugs/f5c06914-dc64-4658-8ec7-32a026a53f55/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f65b680b-4309-43a2-ae2d-e65811c9d107/values [moved from .be/bugs/f65b680b-4309-43a2-ae2d-e65811c9d107/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f70dd5df-805b-49f3-a9ce-12e0fae63365/comments/24903c62-f441-496e-9dcf-17e7a581df33/body [moved from .be/bugs/f70dd5df-805b-49f3-a9ce-12e0fae63365/comments/24903c62-f441-496e-9dcf-17e7a581df33/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f70dd5df-805b-49f3-a9ce-12e0fae63365/comments/24903c62-f441-496e-9dcf-17e7a581df33/values [moved from .be/bugs/f70dd5df-805b-49f3-a9ce-12e0fae63365/comments/24903c62-f441-496e-9dcf-17e7a581df33/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f70dd5df-805b-49f3-a9ce-12e0fae63365/values [moved from .be/bugs/f70dd5df-805b-49f3-a9ce-12e0fae63365/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f77fc673-c852-4c81-bfa2-1d59de2661c8/values [moved from .be/bugs/f77fc673-c852-4c81-bfa2-1d59de2661c8/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/028d2e8d-5b0f-4c43-a913-35a1709b2276/body [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/028d2e8d-5b0f-4c43-a913-35a1709b2276/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/028d2e8d-5b0f-4c43-a913-35a1709b2276/values [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/028d2e8d-5b0f-4c43-a913-35a1709b2276/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/15602c0c-25e4-4c2c-9e24-79bdb90721b1/body [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/15602c0c-25e4-4c2c-9e24-79bdb90721b1/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/15602c0c-25e4-4c2c-9e24-79bdb90721b1/values [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/15602c0c-25e4-4c2c-9e24-79bdb90721b1/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/3f556a48-c538-4569-8609-3e829b561d78/body [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/3f556a48-c538-4569-8609-3e829b561d78/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/3f556a48-c538-4569-8609-3e829b561d78/values [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/3f556a48-c538-4569-8609-3e829b561d78/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/f376debf-9f7e-4347-807f-00e7263487c7/body [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/f376debf-9f7e-4347-807f-00e7263487c7/body with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/f376debf-9f7e-4347-807f-00e7263487c7/values [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/comments/f376debf-9f7e-4347-807f-00e7263487c7/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/values [moved from .be/bugs/f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a/values with 100% similarity]
.be/bea86499-824e-4e77-b085-2d581fa9ccab/settings [moved from .be/settings with 100% similarity]
libbe/bug.py
libbe/bugdir.py
libbe/command/base.py
libbe/command/list.py
libbe/comment.py
libbe/storage/__init__.py
libbe/storage/base.py
libbe/storage/util/upgrade.py [moved from libbe/storage/vcs/util/upgrade.py with 93% similarity]
libbe/storage/vcs/__init__.py [new file with mode: 0644]
libbe/storage/vcs/base.py
libbe/ui/command_line.py
libbe/ui/util/user.py
libbe/util/id.py
test.py

index d62de499003becaf214baaaa66f96d5118a57dda..29d95f5390b2ff2b69543bd297c59609426adb86 100644 (file)
@@ -657,8 +657,9 @@ class Bug(settings_object.SavedSettingsObject):
             parent = self.bugdir.id.storage()
         else:
             parent = None
-        self.storage.add(self.id.storage(), parent=parent)
-        self.storage.add(self.id.storage('values'), parent=self.id.storage())
+        self.storage.add(self.id.storage(), parent=parent, directory=True)
+        self.storage.add(self.id.storage('values'), parent=self.id.storage(),
+                         directory=False)
         self.save_settings()
         if len(self.comment_root) > 0:
             comment.save_comments(self)
index 5f76d3c7ded887e97b1de31b7606a80c6953621b..c120482a3cb886d8d793bc4363f8140a3c5ec26b 100644 (file)
@@ -30,7 +30,6 @@ import os.path
 import time
 
 import libbe
-import libbe.util.encoding as encoding
 import libbe.storage as storage
 from libbe.storage.util.properties import Property, doc_property, \
     local_property, defaulting_property, checked_property, \
@@ -175,6 +174,8 @@ class BugDir (list, settings_object.SavedSettingsObject):
         self.storage = storage
         self.id = libbe.util.id.ID(self, 'bugdir')
         if from_storage == True:
+            self.uuid = [c for c in self.storage.children()
+                         if c != 'version'][0]
             self.load_settings()
         else:
             if uuid == None:
@@ -192,8 +193,7 @@ class BugDir (list, settings_object.SavedSettingsObject):
                 self.storage.get(self.id.storage('settings'), default='\n')
         self.settings = mapfile.parse(settings_mapfile)
         self._setup_saved_settings()
-        self._setup_user_id(self.user_id)
-        self._setup_encoding(self.encoding)
+        #self._setup_user_id(self.user_id)
         self._setup_severities(self.severities)
         self._setup_status(self.active_status, self.inactive_status)
 
@@ -219,8 +219,9 @@ class BugDir (list, settings_object.SavedSettingsObject):
         happen, so calling this method will just waste time (unless
         something else has been messing with your stored files).
         """
-        self.storage.add(self.id.storage())
-        self.storage.add(self.id.storage('settings'), parent=self.id.storage())
+        self.storage.add(self.id.storage(), directory=True)
+        self.storage.add(self.id.storage('settings'), parent=self.id.storage(),
+                         directory=False)
         self.save_settings()
         for bug in self:
             bug.save()
@@ -297,7 +298,6 @@ class BugDir (list, settings_object.SavedSettingsObject):
         dbd.storage.writeable = False
         added,changed,removed = self.storage.changed_since(revision)
         for id in added:
-            
             pass
         for id in removed:
             pass
index 252dd24d433a3aa902a8a72a963ba3aa91dabf38..52f193de546e421dbd6a1c8c80dd9efc4bc6acfb 100644 (file)
@@ -1,5 +1,6 @@
 # Copyright
 
+import codecs
 import optparse
 import sys
 
@@ -168,7 +169,7 @@ class Command (object):
             else: # non-arg options are flags, set to default flag value
                 params[option.name] = False
         if len(options) > 0:
-            raise UserError, 'Invalid options passed to command %s:\n  %s' \
+            raise UserError, 'Invalid option passed to command %s:\n  %s' \
                 % (self.name, '\n  '.join(['%s: %s' % (k,v)
                                            for k,v in options.items()]))
         for arg in self.args:
@@ -190,9 +191,9 @@ class Command (object):
 
     def _setup_io(self, input_encoding=None, output_encoding=None):
         if input_encoding == None:
-            input_encoding = libbe.util.get_input_encoding()
+            input_encoding = libbe.util.encoding.get_input_encoding()
         if output_encoding == None:
-            output_encoding = libbe.util.get_output_encoding()
+            output_encoding = libbe.util.encoding.get_output_encoding()
         self.stdin = codecs.getwriter(input_encoding)(sys.stdin)
         self.stdin.encoding = input_encoding
         self.stdout = codecs.getwriter(output_encoding)(sys.stdout)
index c835815959b6456697dee49e132bf48521b1d5d4..ce43ec9e05bc30106c984d592054b7d28d789e85 100644 (file)
@@ -129,6 +129,7 @@ class List (libbe.command.Command):
 #                ])
 
     def _run(self, bugdir, **params):
+        bugdir.storage.writeable = False
         cmp_list, status, severity, assigned, extra_strings_regexps = \
             self._parse_params(params)
         filter = Filter(status, severity, assigned, extra_strings_regexps)
@@ -136,7 +137,7 @@ class List (libbe.command.Command):
         bugs = [b for b in bugs if filter(b) == True]
         self.result = bugs
         if len(bugs) == 0 and params['xml'] == False:
-            print "No matching bugs found"
+            print >> self.stdout, "No matching bugs found"
     
         # sort bugs
         bugs = self._sort_bugs(bugs, cmp_list)
@@ -144,7 +145,7 @@ class List (libbe.command.Command):
         # print list of bugs
         if params['uuids'] == True:
             for bug in bugs:
-                print bug.uuid
+                print >> self.stdout, bug.uuid
         else:
             self._list_bugs(bugs, xml=params['xml'])
 
@@ -205,16 +206,17 @@ class List (libbe.command.Command):
 
     def _list_bugs(self, bugs, xml=False):
         if xml == True:
-            print '<?xml version="1.0" encoding="%s" ?>' % self.stdout.encoding
-            print "<bugs>"
+            print >> self.stdout, \
+                '<?xml version="1.0" encoding="%s" ?>' % self.stdout.encoding
+            print >> self.stdout, '<bugs>'
         if len(bugs) > 0:
             for bug in bugs:
                 if xml == True:
-                    print bug.xml(show_comments=True)
+                    print >> self.stdout, bug.xml(show_comments=True)
                 else:
-                    print bug.string(shortlist=True)
+                    print >> self.stdout, bug.string(shortlist=True)
         if xml == True:
-            print "</bugs>"
+            print >> self.stdout, '</bugs>'
 
     def _long_help(self):
         return """
index bf69a698a1cb482d145e18befa4ae83b58d0e965..7b318cb6bee957042e783789675f9a8f674e7cf2 100644 (file)
@@ -594,9 +594,11 @@ class Comment(Tree, settings_object.SavedSettingsObject):
             parent = self.bug.id.storage()
         else:
             parent = None
-        self.storage.add(self.id.storage(), parent=parent)
-        self.storage.add(self.id.storage('values'), parent=self.id.storage())
-        self.storage.add(self.id.storage('body'), parent=self.id.storage())
+        self.storage.add(self.id.storage(), parent=parent, directory=True)
+        self.storage.add(self.id.storage('values'), parent=self.id.storage(),
+                         directory=False)
+        self.storage.add(self.id.storage('body'), parent=self.id.storage(),
+                         directory=False)
         self.save_settings()
         self._set_comment_body(new=self.body, force=True)
 
index 9c954ee8f3c96805f378b2ecbf02e915811a5516..5d5b91862dd140c2242a1d96f039ae8c656deab5 100644 (file)
@@ -5,9 +5,21 @@ import base
 ConnectionError = base.ConnectionError
 InvalidID = base.InvalidID
 InvalidRevision = base.InvalidRevision
+InvalidDirectory = base.InvalidDirectory
 NotWriteable = base.NotWriteable
 NotReadable = base.NotReadable
 EmptyCommit = base.EmptyCommit
 
+def get_storage(location):
+    """
+    Return a Storage instance from a repo location string.
+    """
+    import vcs
+    #s = vcs.detect_vcs(location)
+    s = vcs.vcs_by_name('None')
+    s.repo = location
+    return s
+
 __all__ = [ConnectionError, InvalidID, InvalidRevision,
-           NotWriteable, NotReadable, EmptyCommit]
+           InvalidDirectory, NotWriteable, NotReadable,
+           EmptyCommit, get_storage]
index eb2b94ca2193f38617b657681fc9586002d95ea8..84197966a2b7ce3402b9105429ed9e67a2ffca46 100644 (file)
@@ -31,6 +31,12 @@ class InvalidID (KeyError):
 class InvalidRevision (KeyError):
     pass
 
+class InvalidDirectory (Exception):
+    pass
+
+class DirectoryNotEmpty (InvalidDirectory):
+    pass
+
 class NotWriteable (NotSupported):
     def __init__(self, msg):
         NotSupported.__init__(self, 'write', msg)
@@ -44,7 +50,8 @@ class EmptyCommit(Exception):
         Exception.__init__(self, 'No changes to commit')
 
 class Entry (Tree):
-    def __init__(self, id, value=None, parent=None, children=None):
+    def __init__(self, id, value=None, parent=None, directory=False,
+                 children=None):
         if children == None:
             Tree.__init__(self)
         else:
@@ -53,7 +60,11 @@ class Entry (Tree):
         self.value = value
         self.parent = parent
         if self.parent != None:
+            if self.parent.directory == False:
+                raise InvalidDirectory(
+                    'Non-directory %s cannot have children' % self.parent)
             parent.append(self)
+        self.directory = directory
 
     def __str__(self):
         return '<Entry %s: %s>' % (self.id, self.value)
@@ -101,7 +112,7 @@ class Storage (object):
     """
     name = 'Storage'
 
-    def __init__(self, repo, encoding='utf-8', options=None):
+    def __init__(self, repo='/', encoding='utf-8', options=None):
         self.repo = repo
         self.encoding = encoding
         self.options = options
@@ -113,7 +124,7 @@ class Storage (object):
         self.can_init = True
 
     def __str__(self):
-        return '<%s %s>' % (self.__class__.__name__, id(self))
+        return '<%s %s %s>' % (self.__class__.__name__, id(self), self.repo)
 
     def __repr__(self):
         return str(self)
@@ -139,7 +150,7 @@ class Storage (object):
 
     def _init(self):
         f = open(self.repo, 'wb')
-        root = Entry(id='__ROOT__')
+        root = Entry(id='__ROOT__', directory=True)
         d = {root.id:root}
         pickle.dump(dict((k,v._objects_to_ids()) for k,v in d.items()), f, -1)
         f.close()
@@ -178,7 +189,7 @@ class Storage (object):
         f.close()
         self._data = None
 
-    def add(self, *args, **kwargs):
+    def add(self, id, *args, **kwargs):
         """Add an entry"""
         if self.is_writeable() == False:
             raise NotWriteable('Cannot add entry to unwriteable storage.')
@@ -186,13 +197,13 @@ class Storage (object):
             self.get(id)
             pass # yup, no need to add another
         except InvalidID:
-            self._add(*args, **kwargs)
+            self._add(id, *args, **kwargs)
 
-    def _add(self, id, parent=None):
+    def _add(self, id, parent=None, directory=False):
         if parent == None:
             parent = '__ROOT__'
         p = self._data[parent]
-        self._data[id] = Entry(id, parent=p)
+        self._data[id] = Entry(id, parent=p, directory=directory)
 
     def remove(self, *args, **kwargs):
         """Remove an entry."""
@@ -202,6 +213,9 @@ class Storage (object):
         self._remove(*args, **kwargs)
 
     def _remove(self, id):
+        if self._data[id].directory == True \
+                and len(self.children(id)) > 0:
+            raise DirectoryNotEmpty(id)
         e = self._data.pop(id)
         e.parent.remove(e)
 
@@ -213,7 +227,7 @@ class Storage (object):
         self._recursive_remove(*args, **kwargs)
 
     def _recursive_remove(self, id):
-        for entry in self._data[id].traverse():
+        for entry in reversed(list(self._data[id].traverse())):
             self._remove(entry.id)
 
     def children(self, *args, **kwargs):
@@ -266,6 +280,9 @@ class Storage (object):
     def _set(self, id, value):
         if id not in self._data:
             raise InvalidID(id)
+        if self._data[id].directory == True:
+            raise InvalidDirectory(
+                'Directory %s cannot have data' % self.parent)
         self._data[id].value = value
 
 class VersionedStorage (Storage):
@@ -283,7 +300,7 @@ class VersionedStorage (Storage):
 
     def _init(self):
         f = open(self.repo, 'wb')
-        root = Entry(id='__ROOT__')
+        root = Entry(id='__ROOT__', directory=True)
         summary = Entry(id='__COMMIT__SUMMARY__', value='Initial commit')
         body = Entry(id='__COMMIT__BODY__')
         initial_commit = {root.id:root, summary.id:summary, body.id:body}
@@ -311,18 +328,21 @@ class VersionedStorage (Storage):
         f.close()
         self._data = None
 
-    def _add(self, id, parent=None):
+    def _add(self, id, parent=None, directory=False):
         if parent == None:
             parent = '__ROOT__'
         p = self._data[-1][parent]
-        self._data[-1][id] = Entry(id, parent=p)
+        self._data[-1][id] = Entry(id, parent=p, directory=directory)
 
     def _remove(self, id):
+        if self._data[-1][id].directory == True \
+                and len(self.children(id)) > 0:
+            raise DirectoryNotEmpty(id)
         e = self._data[-1].pop(id)
         e.parent.remove(e)
 
     def _recursive_remove(self, id):
-        for entry in self._data[-1][id].traverse():
+        for entry in reversed(list(self._data[-1][id].traverse())):
             self._remove(entry.id)
 
     def _children(self, id=None, revision=None):
@@ -416,6 +436,7 @@ if TESTING == True:
             self.s.disconnect()
             self.s.destroy()
             self.assert_failed_connect()
+            self.dir.cleanup()
 
         def assert_failed_connect(self):
             try:
@@ -440,12 +461,12 @@ if TESTING == True:
             """New repository should be empty."""
             self.failUnless(len(self.s.children()) == 0, self.s.children())
 
-        def test_add_rooted(self):
+        def test_add_identical_rooted(self):
             """
             Adding entries with the same ID should not increase the number of children.
             """
             for i in range(10):
-                self.s.add('some id')
+                self.s.add('some id', directory=False)
                 s = sorted(self.s.children())
                 self.failUnless(s == ['some id'], s)
 
@@ -456,7 +477,7 @@ if TESTING == True:
             ids = []
             for i in range(10):
                 ids.append(str(i))
-                self.s.add(ids[-1])
+                self.s.add(ids[-1], directory=False)
                 s = sorted(self.s.children())
                 self.failUnless(s == ids, '\n  %s\n  !=\n  %s' % (s, ids))
 
@@ -464,16 +485,50 @@ if TESTING == True:
             """
             Adding entries should increase the number of children (nonrooted).
             """
-            self.s.add('parent')
+            self.s.add('parent', directory=True)
             ids = []
             for i in range(10):
                 ids.append(str(i))
-                self.s.add(ids[-1], 'parent')
+                self.s.add(ids[-1], 'parent', directory=True)
                 s = sorted(self.s.children('parent'))
                 self.failUnless(s == ids, '\n  %s\n  !=\n  %s' % (s, ids))
                 s = self.s.children()
                 self.failUnless(s == ['parent'], s)
-                
+
+        def test_children(self):
+            """
+            Non-UUID ids should be returned as such.
+            """
+            self.s.add('parent', directory=True)
+            ids = []
+            for i in range(10):
+                ids.append('parent/%s' % str(i))
+                self.s.add(ids[-1], 'parent', directory=True)
+                s = sorted(self.s.children('parent'))
+                self.failUnless(s == ids, '\n  %s\n  !=\n  %s' % (s, ids))
+
+        def test_add_invalid_directory(self):
+            """
+            Should not be able to add children to non-directories.
+            """
+            self.s.add('parent', directory=False)
+            try:
+                self.s.add('child', 'parent', directory=False)
+                self.fail(
+                    '%s.add() succeeded instead of raising InvalidDirectory'
+                    % (vars(self.Class)['name']))
+            except InvalidDirectory:
+                pass
+            try:
+                self.s.add('child', 'parent', directory=True)
+                self.fail(
+                    '%s.add() succeeded instead of raising InvalidDirectory'
+                    % (vars(self.Class)['name']))
+            except InvalidDirectory:
+                pass
+            self.failUnless(len(self.s.children('parent')) == 0,
+                            self.s.children('parent'))
+
         def test_remove_rooted(self):
             """
             Removing entries should decrease the number of children (rooted).
@@ -481,7 +536,7 @@ if TESTING == True:
             ids = []
             for i in range(10):
                 ids.append(str(i))
-                self.s.add(ids[-1])
+                self.s.add(ids[-1], directory=True)
             for i in range(10):
                 self.s.remove(ids.pop())
                 s = sorted(self.s.children())
@@ -491,11 +546,11 @@ if TESTING == True:
             """
             Removing entries should decrease the number of children (nonrooted).
             """
-            self.s.add('parent')
+            self.s.add('parent', directory=True)
             ids = []
             for i in range(10):
                 ids.append(str(i))
-                self.s.add(ids[-1], 'parent')
+                self.s.add(ids[-1], 'parent', directory=False)
             for i in range(10):
                 self.s.remove(ids.pop())
                 s = sorted(self.s.children('parent'))
@@ -503,17 +558,35 @@ if TESTING == True:
                 s = self.s.children()
                 self.failUnless(s == ['parent'], s)
 
+        def test_remove_directory_not_empty(self):
+            """
+            Removing a non-empty directory entry should raise exception.
+            """
+            self.s.add('parent', directory=True)
+            ids = []
+            for i in range(10):
+                ids.append(str(i))
+                self.s.add(ids[-1], 'parent', directory=True)
+            self.s.remove(ids.pop()) # empty directory removal succeeds
+            try:
+                self.s.remove('parent') # empty directory removal succeeds
+                self.fail(
+                    "%s.remove() didn't raise DirectoryNotEmpty"
+                    % (vars(self.Class)['name']))
+            except DirectoryNotEmpty:
+                pass
+
         def test_recursive_remove(self):
             """
             Recursive remove should empty the tree.
             """
-            self.s.add('parent')
+            self.s.add('parent', directory=True)
             ids = []
             for i in range(10):
                 ids.append(str(i))
-                self.s.add(ids[-1], 'parent')
+                self.s.add(ids[-1], 'parent', directory=True)
                 for j in range(10): # add some grandkids
-                    self.s.add(str(20*i+j), ids[-i])
+                    self.s.add(str(20*(i+1)+j), ids[-1], directory=False)
             self.s.recursive_remove('parent')
             s = sorted(self.s.children())
             self.failUnless(s == [], s)
@@ -549,7 +622,7 @@ if TESTING == True:
             """
             Data value should be None before any value has been set.
             """
-            self.s.add(self.id)
+            self.s.add(self.id, directory=False)
             ret = self.s.get(self.id)
             self.failUnless(ret == None,
                     "%s.get() returned %s not None"
@@ -571,7 +644,7 @@ if TESTING == True:
             """
             Set should define the value returned by get.
             """
-            self.s.add(self.id)
+            self.s.add(self.id, directory=False)
             self.s.set(self.id, self.val)
             ret = self.s.get(self.id)
             self.failUnless(ret == self.val,
@@ -583,7 +656,7 @@ if TESTING == True:
             Set should define the value returned by get.
             """
             val = u'Fran\xe7ois'
-            self.s.add(self.id)
+            self.s.add(self.id, directory=False)
             self.s.set(self.id, val)
             ret = self.s.get(self.id, decode=True)
             self.failUnless(type(ret) == types.UnicodeType,
@@ -612,7 +685,7 @@ if TESTING == True:
             """
             Set should define the value returned by get after reconnect.
             """
-            self.s.add(self.id)
+            self.s.add(self.id, directory=False)
             self.s.set(self.id, self.val)
             self.s.disconnect()
             self.s.connect()
@@ -625,11 +698,11 @@ if TESTING == True:
             """
             Adding entries should increase the number of children after reconnect.
             """
-            self.s.add('parent')
+            self.s.add('parent', directory=True)
             ids = []
             for i in range(10):
                 ids.append(str(i))
-                self.s.add(ids[-1], 'parent')
+                self.s.add(ids[-1], 'parent', directory=False)
             self.s.disconnect()
             self.s.connect()
             s = sorted(self.s.children('parent'))
@@ -707,7 +780,7 @@ if TESTING == True:
             """
             def val(i):
                 return '%s:%d' % (self.val, i+1)
-            self.s.add(self.id)
+            self.s.add(self.id, directory=False)
             revs = []
             for i in range(10):
                 self.s.set(self.id, val(i))
@@ -716,7 +789,7 @@ if TESTING == True:
             for i in range(10):
                 ret = self.s.get(self.id, revision=revs[i])
                 self.failUnless(ret == val(i),
-                                "%s.get() returned %s not %s for revision %d"
+                                "%s.get() returned %s not %s for revision %s"
                                 % (vars(self.Class)['name'], ret, val(i), revs[i]))
         
     def make_storage_testcase_subclasses(storage_class, namespace):
similarity index 93%
rename from libbe/storage/vcs/util/upgrade.py
rename to libbe/storage/util/upgrade.py
index dc9d54f30b72592ad4b10f1203cda46806631088..7ef760eea58e533b70b2fe4d6e2e6a0259f62ddd 100644 (file)
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 """
-Handle conversion between the various on-disk images.
+Handle conversion between the various BE storage formats.
 """
 
+import codecs
 import os, os.path
 import sys
 
 import libbe
-import bug
-import encoding
-import mapfile
-import vcs
+import libbe.bug as bug
+import libbe.util.encoding as encoding
+import libbe.storage.util.mapfile as mapfile
+
 if libbe.TESTING == True:
     import doctest
 
@@ -39,30 +40,25 @@ BUGDIR_DISK_VERSIONS = ["Bugs Everywhere Tree 1 0",
 BUGDIR_DISK_VERSION = BUGDIR_DISK_VERSIONS[-1]
 
 class Upgrader (object):
-    "Class for converting "
+    "Class for converting between different on-disk BE storage formats."
     initial_version = None
     final_version = None
     def __init__(self, root):
         self.root = root
-        # use the "None" VCS to ensure proper encoding/decoding and
-        # simplify path construction.
-        self.vcs = vcs.vcs_by_name("None")
-        self.vcs.root(self.root)
-        self.vcs.encoding = encoding.get_encoding()
 
     def get_path(self, *args):
         """
         Return a path relative to .root.
         """
-        dir = os.path.join(self.root, ".be")
+        dir = os.path.join(self.root, '.be')
         if len(args) == 0:
             return dir
-        assert args[0] in ["version", "settings", "bugs"], str(args)
+        assert args[0] in ['version', 'settings', 'bugs'], str(args)
         return os.path.join(dir, *args)
 
     def check_initial_version(self):
-        path = self.get_path("version")
-        version = self.vcs.get_file_contents(path).rstrip("\n")
+        path = self.get_path('version')
+        version = self.vcs.get_file_contents(path).rstrip('\n')
         assert version == self.initial_version, version
 
     def set_version(self):
diff --git a/libbe/storage/vcs/__init__.py b/libbe/storage/vcs/__init__.py
new file mode 100644 (file)
index 0000000..ddfb00a
--- /dev/null
@@ -0,0 +1,10 @@
+# Copyright
+
+import base
+
+set_preferred_vcs = base.set_preferred_vcs
+vcs_by_name = base.vcs_by_name
+detect_vcs = base.detect_vcs
+installed_vcs = base.installed_vcs
+
+__all__ = [set_preferred_vcs, vcs_by_name, detect_vcs, installed_vcs]
index f8b072727fad606626a1ac79cfc12598bc4af83f..8c0ecf5c6d3424a42f66408f61faa0af40e8e1a6 100644 (file)
@@ -29,20 +29,23 @@ import codecs
 import os
 import os.path
 import re
-from socket import gethostname
 import shutil
 import sys
 import tempfile
 
 import libbe
-from utility import Dir, search_parent_directories
-from subproc import CommandError, invoke
-from plugin import get_plugin
+import libbe.storage.base
+import libbe.util.encoding
+from libbe.util.utility import Dir, search_parent_directories
+from libbe.util.subproc import CommandError, invoke
+from libbe.util.plugin import import_by_name
+#import libbe.storage.util.upgrade as upgrade
 
 if libbe.TESTING == True:
     import unittest
     import doctest
 
+    import libbe.ui.util.user
 
 # List VCS modules in order of preference.
 # Don't list this module, it is implicitly last.
@@ -58,62 +61,243 @@ def set_preferred_vcs(name):
 def _get_matching_vcs(matchfn):
     """Return the first module for which matchfn(VCS_instance) is true"""
     for submodname in VCS_ORDER:
-        module = get_plugin('libbe', submodname)
+        module = import_by_name('libbe.storage.vcs.%s' % submodname)
         vcs = module.new()
         if matchfn(vcs) == True:
             return vcs
         vcs.cleanup()
     return VCS()
-    
+
 def vcs_by_name(vcs_name):
     """Return the module for the VCS with the given name"""
+    if vcs_name == VCS.name:
+        return new()
     return _get_matching_vcs(lambda vcs: vcs.name == vcs_name)
 
 def detect_vcs(dir):
     """Return an VCS instance for the vcs being used in this directory"""
-    return _get_matching_vcs(lambda vcs: vcs.detect(dir))
+    return _get_matching_vcs(lambda vcs: vcs._detect(dir))
 
 def installed_vcs():
     """Return an instance of an installed VCS"""
     return _get_matching_vcs(lambda vcs: vcs.installed())
 
 
-
-class SettingIDnotSupported(NotImplementedError):
-    pass
-
-class VCSnotRooted(Exception):
+class VCSnotRooted (libbe.storage.base.ConnectionError):
     def __init__(self):
-        msg = "VCS not rooted"
-        Exception.__init__(self, msg)
-
-class PathNotInRoot(Exception):
-    def __init__(self, path, root):
-        msg = "Path '%s' not in root '%s'" % (path, root)
-        Exception.__init__(self, msg)
+        msg = 'VCS not rooted'
+        libbe.storage.base.ConnectionError.__init__(self, msg)
+
+class InvalidPath (libbe.storage.base.InvalidID):
+    def __init__(self, path, root, msg=None):
+        if msg == None:
+            msg = 'Path "%s" not in root "%s"' % (path, root)
+        libbe.storage.base.InvalidID.__init__(self, msg)
         self.path = path
         self.root = root
 
-class NoSuchFile(Exception):
-    def __init__(self, pathname, root="."):
+class SpacerCollision (InvalidPath):
+    def __init__(self, path, spacer):
+        msg = 'Path "%s" collides with spacer directory "%s"' % (path, spacer)
+        InvalidPath.__init__(self, path, root=None, msg=msg)
+        self.spacer = spacer
+
+class NoSuchFile (libbe.storage.base.InvalidID):
+    def __init__(self, pathname, root='.'):
         path = os.path.abspath(os.path.join(root, pathname))
-        Exception.__init__(self, "No such file: %s" % path)
+        libbe.storage.base.InvalidID.__init__(self, 'No such file: %s' % path)
 
-class EmptyCommit(Exception):
-    def __init__(self):
-        Exception.__init__(self, "No changes to commit")
+
+class CachedPathID (object):
+    """
+    Storage ID <-> path policy.
+      .../.be/BUGDIR/bugs/BUG/comments/COMMENT
+        ^-- root path
+
+    >>> dir = Dir()
+    >>> os.mkdir(os.path.join(dir.path, '.be'))
+    >>> os.mkdir(os.path.join(dir.path, '.be', 'abc'))
+    >>> os.mkdir(os.path.join(dir.path, '.be', 'abc', 'bugs'))
+    >>> os.mkdir(os.path.join(dir.path, '.be', 'abc', 'bugs', '123'))
+    >>> os.mkdir(os.path.join(dir.path, '.be', 'abc', 'bugs', '123', 'comments'))
+    >>> os.mkdir(os.path.join(dir.path, '.be', 'abc', 'bugs', '123', 'comments', 'def'))
+    >>> os.mkdir(os.path.join(dir.path, '.be', 'abc', 'bugs', '456'))
+    >>> file(os.path.join(dir.path, '.be', 'abc', 'values'),
+    ...      'w').close()
+    >>> file(os.path.join(dir.path, '.be', 'abc', 'bugs', '123', 'values'),
+    ...      'w').close()
+    >>> file(os.path.join(dir.path, '.be', 'abc', 'bugs', '123', 'comments', 'def', 'values'),
+    ...      'w').close()
+    >>> c = CachedPathID()
+    >>> c.root(dir.path)
+    >>> c.id(os.path.join(dir.path, '.be', 'abc', 'bugs', '123', 'comments', 'def', 'values'))
+    'def/values'
+    >>> c.init()
+    >>> sorted(os.listdir(os.path.join(c._root, '.be')))
+    ['abc', 'id-cache']
+    >>> c.connect()
+    >>> c.path('123/values') # doctest: +ELLIPSIS
+    u'.../.be/abc/bugs/123/values'
+    >>> c.disconnect()
+    >>> c.destroy()
+    >>> sorted(os.listdir(os.path.join(c._root, '.be')))
+    ['abc']
+    >>> c.connect() # demonstrate auto init
+    >>> sorted(os.listdir(os.path.join(c._root, '.be')))
+    ['abc', 'id-cache']
+    >>> c.add_id(u'xyz', parent=None) # doctest: +ELLIPSIS
+    u'.../.be/xyz'
+    >>> c.add_id('xyz/def', parent='xyz') # doctest: +ELLIPSIS
+    u'.../.be/xyz/def'
+    >>> c.add_id('qrs', parent='123') # doctest: +ELLIPSIS
+    u'.../.be/abc/bugs/123/comments/qrs'
+    >>> c.disconnect()
+    >>> c.connect()
+    >>> c.path('qrs') # doctest: +ELLIPSIS
+    u'.../.be/abc/bugs/123/comments/qrs'
+    >>> c.remove_id('qrs')
+    >>> c.path('qrs')
+    Traceback (most recent call last):
+      ...
+    InvalidID: 'qrs'
+    >>> c.disconnect()
+    >>> c.destroy()
+    >>> dir.cleanup()
+    """
+    def __init__(self, encoding=None):
+        self.encoding = libbe.util.encoding.get_filesystem_encoding()
+        self._spacer_dirs = ['.be', 'bugs', 'comments']
+
+    def root(self, path):
+        self._root = os.path.abspath(path).rstrip(os.path.sep)
+        self._cache_path = os.path.join(
+            self._root, self._spacer_dirs[0], 'id-cache')
+
+    def init(self):
+        """
+        Create cache file for an existing .be directory.
+        File if multiple lines of the form:
+          UUID\tPATH
+        """
+        self._cache = {}
+        spaced_root = os.path.join(self._root, self._spacer_dirs[0])
+        for dirpath, dirnames, filenames in os.walk(spaced_root):
+            if dirpath == spaced_root:
+                continue
+            try:
+                id = self.id(dirpath)
+                relpath = dirpath[len(self._root)+1:]
+                if id.count('/') == 0:
+                    self._cache[id] = relpath
+            except InvalidPath:
+                pass
+        self._changed = True
+        self.disconnect()
+
+    def destroy(self):
+        os.remove(self._cache_path)
+
+    def connect(self):
+        if not os.path.exists(self._cache_path):
+            try:
+                self.init()
+            except IOError:
+                raise libbe.storage.base.ConnectionError
+        self._cache = {} # key: uuid, value: path
+        self._changed = False
+        f = codecs.open(self._cache_path, 'r', self.encoding)
+        for line in f:
+            fields = line.rstrip('\n').split('\t')
+            self._cache[fields[0]] = fields[1]
+        f.close()
+
+    def disconnect(self):
+        if self._changed == True:
+            f = codecs.open(self._cache_path, 'w', self.encoding)
+            for uuid,path in self._cache.items():
+                f.write('%s\t%s\n' % (uuid, path))
+            f.close()
+        self._cache = {}
+
+    def path(self, id, relpath=False):
+        fields = id.split('/', 1)
+        uuid = fields[0]
+        if len(fields) == 1:
+            extra = []
+        else:
+            extra = fields[1:]
+        if uuid not in self._cache:
+            raise libbe.storage.base.InvalidID(uuid)
+        if relpath == True:
+            return os.path.join(self._cache[uuid], *extra)
+        return os.path.join(self._root, self._cache[uuid], *extra)
+
+    def add_id(self, id, parent=None):
+        if id.count('/') > 0:
+            # not a UUID-level path
+            assert id.startswith(parent), \
+                'Strange ID: "%s" should start with "%s"' % (id, parent)
+            path = self.path(id)
+        elif id in self._cache:
+            # already added
+            path = self.path(id)
+        else:
+            if parent == None:
+                parent_path = ''
+                spacer = self._spacer_dirs[0]
+            else:
+                assert parent.count('/') == 0, \
+                    'Strange parent ID: "%s" should be UUID' % parent
+                parent_path = self.path(parent, relpath=True)
+                parent_spacer = parent_path.split(os.path.sep)[-2]
+                i = self._spacer_dirs.index(parent_spacer)
+                spacer = self._spacer_dirs[i+1]
+            path = os.path.join(parent_path, spacer, id)
+            self._cache[id] = path
+            self._changed = True
+            path = os.path.join(self._root, path)
+        return path
+
+    def remove_id(self, id):
+        if id.count('/') > 0:
+            return # not a UUID-level path
+        self._cache.pop(id)
+        self._changed = True
+
+    def id(self, path):
+        path = os.path.abspath(path)
+        if not path.startswith(self._root + os.path.sep):
+            raise InvalidPath('Path %s not in root %s' % (path, self._root))
+        path = path[len(self._root)+1:]
+        orig_path = path
+        if not path.startswith(self._spacer_dirs[0] + os.path.sep):
+            raise InvalidPath(path, self._spacer_dirs[0])
+        for spacer in self._spacer_dirs:
+            if not path.startswith(spacer + os.path.sep):
+                break
+            id = path[len(spacer)+1:]
+            fields = path[len(spacer)+1:].split(os.path.sep,1)
+            if len(fields) == 1:
+                break
+            path = fields[1]
+        for spacer in self._spacer_dirs:
+            if id.endswith(os.path.sep + spacer):
+                raise SpacerCollision(orig_path, spacer)
+        if os.path.sep != '/':
+            id = id.replace(os.path.sep, '/')
+        return id
 
 
 def new():
     return VCS()
 
-class VCS(object):
+class VCS (libbe.storage.base.VersionedStorage):
     """
     This class implements a 'no-vcs' interface.
 
     Support for other VCSs can be added by subclassing this class, and
     overriding methods _vcs_*() with code appropriate for your VCS.
-    
+
     The methods _u_*() are utility methods available to the _vcs_*()
     methods.
 
@@ -127,7 +311,7 @@ class VCS(object):
       /path/to/source/.be
     However, you're of in some subdirectory like
       /path/to/source/GUI/testing
-    and you want to comment on a bug.  Setting sink_to_root=True wen
+    and you want to comment on a bug.  Setting sink_to_root=True when
     you initialize your BugDir will cause it to search for the '.be'
     file in the ancestors of the path you passed in as 'root'.
       /path/to/source/GUI/testing/.be     miss
@@ -245,113 +429,110 @@ class VCS(object):
 
 os.listdir(self.get_path("bugs")):
     """
-    name = "None"
-    client = "" # command-line tool for _u_invoke_client
-    versioned = False
-    def __init__(self, paranoid=False, encoding=sys.getdefaultencoding()):
-        self.paranoid = paranoid
-        self.verboseInvoke = False
-        self.rootdir = None
-        self._duplicateBasedir = None
-        self._duplicateDirname = None
-        self.encoding = encoding
-    def __str__(self):
-        return "<%s %s>" % (self.__class__.__name__, id(self))
-    def __repr__(self):
-        return str(self)
+    name = 'None'
+    client = 'false' # command-line tool for _u_invoke_client
+
+    def __init__(self, *args, **kwargs):
+        if 'encoding' not in kwargs:
+            kwargs['encoding'] = libbe.util.encoding.get_filesystem_encoding()
+        libbe.storage.base.VersionedStorage.__init__(self, *args, **kwargs)
+        self.versioned = False
+        self.verbose_invoke = False
+        self._cached_path_id = CachedPathID()
+
     def _vcs_version(self):
         """
         Return the VCS version string.
         """
-        return "0.0"
+        return '0'
+
+    def _vcs_get_user_id(self):
+        """
+        Get the VCS's suggested user id (e.g. "John Doe <jdoe@example.com>").
+        If the VCS has not been configured with a username, return None.
+        """
+        return None
+
     def _vcs_detect(self, path=None):
         """
         Detect whether a directory is revision controlled with this VCS.
         """
         return True
+
     def _vcs_root(self, path):
         """
         Get the VCS root.  This is the default working directory for
         future invocations.  You would normally set this to the root
         directory for your VCS.
         """
-        if os.path.isdir(path)==False:
+        if os.path.isdir(path) == False:
             path = os.path.dirname(path)
-            if path == "":
-                path = os.path.abspath(".")
+            if path == '':
+                path = os.path.abspath('.')
         return path
-    def _vcs_init(self, path):
+
+    def _vcs_init(self):
         """
-        Begin versioning the tree based at path.
+        Begin versioning the tree based at self.repo.
         """
         pass
-    def _vcs_cleanup(self):
+
+    def _vcs_destroy(self):
         """
-        Remove any cruft that _vcs_init() created outside of the
-        versioned tree.
+        Remove any files used in versioning (e.g. whatever _vcs_init()
+        created).
         """
         pass
-    def _vcs_get_user_id(self):
-        """
-        Get the VCS's suggested user id (e.g. "John Doe <jdoe@example.com>").
-        If the VCS has not been configured with a username, return None.
-        """
-        return None
-    def _vcs_set_user_id(self, value):
-        """
-        Set the VCS's suggested user id (e.g "John Doe <jdoe@example.com>").
-        This is run if the VCS has not been configured with a usename, so
-        that commits will have a reasonable FROM value.
-        """
-        raise SettingIDnotSupported
+
     def _vcs_add(self, path):
         """
         Add the already created file at path to version control.
         """
         pass
+
     def _vcs_remove(self, path):
         """
         Remove the file at path from version control.  Optionally
         remove the file from the filesystem as well.
         """
         pass
+
     def _vcs_update(self, path):
         """
         Notify the versioning system of changes to the versioned file
         at path.
         """
         pass
-    def _vcs_get_file_contents(self, path, revision=None, binary=False):
+
+    def _vcs_get_file_contents(self, path, revision=None):
         """
         Get the file contents as they were in a given revision.
         Revision==None specifies the current revision.
         """
-        assert revision == None, \
-            "The %s VCS does not support revision specifiers" % self.name
-        if binary == False:
-            f = codecs.open(os.path.join(self.rootdir, path), "r", self.encoding)
-        else:
-            f = open(os.path.join(self.rootdir, path), "rb")
+        if revision != None:
+            raise libbe.storage.base.InvalidRevision(
+                'The %s VCS does not support revision specifiers' % self.name)
+        path = os.path.join(self.repo, path)
+        if not os.path.exists(path):
+            return libbe.util.InvalidObject
+        if os.path.isdir(path):
+            return libbe.storage.base.InvalidDirectory
+        f = open(path, 'rb')
         contents = f.read()
         f.close()
         return contents
-    def _vcs_duplicate_repo(self, directory, revision=None):
-        """
-        Get the repository as it was in a given revision.
-        revision==None specifies the current revision.
-        dir specifies a directory to create the duplicate in.
-        """
-        shutil.copytree(self.rootdir, directory, True)
+
     def _vcs_commit(self, commitfile, allow_empty=False):
         """
         Commit the current working directory, using the contents of
         commitfile as the comment.  Return the name of the old
         revision (or None if commits are not supported).
-        
+
         If allow_empty == False, raise EmptyCommit if there are no
         changes to commit.
         """
         return None
+
     def _vcs_revision_id(self, index):
         """
         Return the name of the <index>th revision.  Index will be an
@@ -362,11 +543,13 @@ os.listdir(self.get_path("bugs")):
         specified revision does not exist.
         """
         return None
+
     def version(self):
-        """Cache version string for efficiency."""
+        # Cache version string for efficiency.
         if not hasattr(self, '_version'):
             self._version = self._get_version()
         return self._version
+
     def _get_version(self):
         try:
             ret = self._vcs_version()
@@ -378,183 +561,166 @@ os.listdir(self.get_path("bugs")):
                 raise OSError, e
         except CommandError:
             return None
+
     def installed(self):
         if self.version() != None:
             return True
         return False
-    def detect(self, path="."):
-        """
-        Detect whether a directory is revision controlled with this VCS.
-        """
-        return self._vcs_detect(path)
-    def root(self, path):
-        """
-        Set the root directory to the path's VCS root.  This is the
-        default working directory for future invocations.
-        """
-        self.rootdir = self._vcs_root(path)
-    def init(self, path):
-        """
-        Begin versioning the tree based at path.
-        Also roots the vcs at path.
-        """
-        if os.path.isdir(path)==False:
-            path = os.path.dirname(path)
-        self._vcs_init(path)
-        self.root(path)
-    def cleanup(self):
-        self._vcs_cleanup()
+
     def get_user_id(self):
         """
         Get the VCS's suggested user id (e.g. "John Doe <jdoe@example.com>").
-        If the VCS has not been configured with a username, return the user's
-        id.  You can override the automatic lookup procedure by setting the
+        If the VCS has not been configured with a username, return None.
+        You can override the automatic lookup procedure by setting the
         VCS.user_id attribute to a string of your choice.
         """
-        if hasattr(self, "user_id"):
-            if self.user_id != None:
-                return self.user_id
-        id = self._vcs_get_user_id()
-        if id == None:
-            name = self._u_get_fallback_username()
-            email = self._u_get_fallback_email()
-            id = self._u_create_id(name, email)
-            print >> sys.stderr, "Guessing id '%s'" % id
-            try:
-                self.set_user_id(id)
-            except SettingIDnotSupported:
-                pass
-        return id
-    def set_user_id(self, value):
+        if not hasattr(self, 'user_id'):
+            self.user_id = self._vcs_get_user_id()
+        return self.user_id
+
+    def _detect(self, path='.'):
         """
-        Set the VCS's suggested user id (e.g "John Doe <jdoe@example.com>").
-        This is run if the VCS has not been configured with a usename, so
-        that commits will have a reasonable FROM value.
+        Detect whether a directory is revision controlled with this VCS.
         """
-        self._vcs_set_user_id(value)
-    def add(self, path):
+        return self._vcs_detect(path)
+
+    def root(self):
         """
-        Add the already created file at path to version control.
+        Set the root directory to the path's VCS root.  This is the
+        default working directory for future invocations.
         """
-        self._vcs_add(self._u_rel_path(path))
-    def remove(self, path):
+        self.repo = os.path.abspath(self._vcs_root(self.repo))
+        if os.path.isdir(self.repo) == False:
+            self.repo = os.path.dirname(self.repo)
+        self.be_dir = os.path.join(
+            self.repo, self._cached_path_id._spacer_dirs[0])
+        self._cached_path_id.root(self.repo)
+
+    def _init(self):
         """
-        Remove a file from both version control and the filesystem.
+        Begin versioning the tree based at self.repo.
+        Also roots the vcs at path.
         """
-        self._vcs_remove(self._u_rel_path(path))
+        self.root()
+        self._vcs_init()
+        os.mkdir(self.be_dir)
+        self._vcs_add(self._u_rel_path(self.be_dir))
+        self._cached_path_id.init()
+
+    def _destroy(self):
+        self._vcs_destroy()
+        self._cached_path_id.destroy()
+        shutil.rmtree(self.be_dir)
+
+    def _connect(self):
+        self.root()
+        self._cached_path_id.connect()
+        self.check_disk_version()
+
+    def disconnect(self):
+        self._cached_path_id.disconnect()
+
+    def _add(self, id, parent=None, directory=False):
+        path = self._cached_path_id.add_id(id, parent)
+        relpath = self._u_rel_path(path)
+        reldirs = relpath.split(os.path.sep)
+        if directory == False:
+            reldirs = reldirs[:-1]
+        dir = self.repo
+        for reldir in reldirs:
+            dir = os.path.join(dir, reldir)
+            if not os.path.exists(dir):
+                os.mkdir(dir)
+                self._vcs_add(self._u_rel_path(dir))
+            elif not os.path.isdir(dir):
+                raise libbe.storage.base.InvalidDirectory
+        if directory == False:
+            if not os.path.exists(path):
+                open(path, 'w').close()
+            self._vcs_add(self._u_rel_path(path))
+
+    def _remove(self, id):
+        path = self._cached_path_id.path(id)
         if os.path.exists(path):
-            os.remove(path)
-    def recursive_remove(self, dirname):
-        """
-        Remove a file/directory and all its decendents from both
-        version control and the filesystem.
-        """
-        if not os.path.exists(dirname):
-            raise NoSuchFile(dirname)
-        for dirpath,dirnames,filenames in os.walk(dirname, topdown=False):
+            if os.path.isdir(path) and len(self.children(id)) > 0:
+                raise libbe.storage.base.DirectoryNotEmpty(id)
+            self._vcs_remove(self._u_rel_path(path))
+            if os.path.exists(path):
+                if os.path.isdir(path):
+                    os.rmdir(path)
+                else:
+                    os.remove(path)
+        self._cached_path_id.remove_id(id)
+
+    def _recursive_remove(self, id):
+        path = self._cached_path_id.path(id)
+        for dirpath,dirnames,filenames in os.walk(path, topdown=False):
             filenames.extend(dirnames)
-            for path in filenames:
-                fullpath = os.path.join(dirpath, path)
+            for f in filenames:
+                fullpath = os.path.join(dirpath, f)
                 if os.path.exists(fullpath) == False:
                     continue
                 self._vcs_remove(self._u_rel_path(fullpath))
-        if os.path.exists(dirname):
-            shutil.rmtree(dirname)
-    def update(self, path):
-        """
-        Notify the versioning system of changes to the versioned file
-        at path.
-        """
-        self._vcs_update(self._u_rel_path(path))
-    def get_file_contents(self, path, revision=None, allow_no_vcs=False, binary=False):
-        """
-        Get the file as it was in a given revision.
-        Revision==None specifies the current revision.
-
-        allow_no_vcs==True allows direct access to files through
-        codecs.open() or open() if the vcs decides it can't handle the
-        given path.
-        """
-        if not os.path.exists(path):
-            raise NoSuchFile(path)
-        if self._use_vcs(path, allow_no_vcs):
-            relpath = self._u_rel_path(path)
-            contents = self._vcs_get_file_contents(relpath,revision,binary=binary)
+        if os.path.exists(path):
+            shutil.rmtree(path)
+        path = self._cached_path_id.path(id, relpath=True)
+        for id,p in self._cached_path_id._cache.items():
+            if p.startswith(path):
+                self._cached_path_id.remove_id(id)
+
+    def _children(self, id=None, revision=None):
+        if id==None:
+            path = self.be_dir
         else:
-            if binary == True:
-                f = codecs.open(path, "r", self.encoding)
-            else:
-                f = open(path, "rb")
-            contents = f.read()
-            f.close()
+            path = self._cached_path_id.path(id)
+        if os.path.isdir(path) == False:
+            return []
+        children = os.listdir(path)
+        for i,c in enumerate(children):
+            if c in self._cached_path_id._spacer_dirs:
+                children[i] = None
+                children.extend([os.path.join(c, c2) for c2 in
+                                 os.listdir(os.path.join(path, c))])
+            elif c == 'id-cache':
+                children[i] = None
+        for i,c in enumerate(children):
+            if c == None: continue
+            cpath = os.path.join(path, c)
+            children[i] = self._cached_path_id.id(cpath)
+        return [c for c in children if c != None]
+
+    def _get(self, id, default=libbe.util.InvalidObject, revision=None):
+        try:
+            path = self._cached_path_id.path(id)
+        except libbe.storage.base.InvalidID, e:
+            if default == libbe.util.InvalidObject:
+                raise e
+            return default
+        relpath = self._u_rel_path(path)
+        contents = self._vcs_get_file_contents(relpath,revision)
+        if contents == libbe.storage.base.InvalidDirectory:
+            raise libbe.storage.base.InvalidDirectory(id)
+        elif contents == libbe.util.InvalidObject:
+            raise libbe.storage.base.InvalidID(id)
+        elif len(contents) == 0:
+            return None
         return contents
-    def set_file_contents(self, path, contents, allow_no_vcs=False, binary=False):
-        """
-        Set the file contents under version control.
-        """
-        add = not os.path.exists(path)
-        if binary == False:
-            f = codecs.open(path, "w", self.encoding)
-        else:
-            f = open(path, "wb")
-        f.write(contents)
-        f.close()
-        
-        if self._use_vcs(path, allow_no_vcs):
-            if add:
-                self.add(path)
-            else:
-                self.update(path)
-    def mkdir(self, path, allow_no_vcs=False, check_parents=True):
-        """
-        Create (if neccessary) a directory at path under version
-        control.
-        """
-        if check_parents == True:
-            parent = os.path.dirname(path)
-            if not os.path.exists(parent): # recurse through parents
-                self.mkdir(parent, allow_no_vcs, check_parents)
+
+    def _set(self, id, value):
+        try:
+            path = self._cached_path_id.path(id)
+        except libbe.storage.base.InvalidID, e:
+            raise e
         if not os.path.exists(path):
-            os.mkdir(path)
-            if self._use_vcs(path, allow_no_vcs):
-                self.add(path)
-        else:
-            assert os.path.isdir(path)
-            if self._use_vcs(path, allow_no_vcs):
-                #self.update(path)# Don't update directories.  Changing files
-                pass              # underneath them should be sufficient.
-                
-    def duplicate_repo(self, revision=None):
-        """
-        Get the repository as it was in a given revision.
-        revision==None specifies the current revision.
-        Return the path to the arbitrary directory at the base of the new repo.
-        """
-        # Dirname in Basedir to protect against simlink attacks.
-        if self._duplicateBasedir == None:
-            self._duplicateBasedir = tempfile.mkdtemp(prefix='BEvcs')
-            self._duplicateDirname = \
-                os.path.join(self._duplicateBasedir, "duplicate")
-            self._vcs_duplicate_repo(directory=self._duplicateDirname,
-                                     revision=revision)
-        return self._duplicateDirname
-    def remove_duplicate_repo(self):
-        """
-        Clean up a duplicate repo created with duplicate_repo().
-        """
-        if self._duplicateBasedir != None:
-            shutil.rmtree(self._duplicateBasedir)
-            self._duplicateBasedir = None
-            self._duplicateDirname = None
-    def commit(self, summary, body=None, allow_empty=False):
-        """
-        Commit the current working directory, with a commit message
-        string summary and body.  Return the name of the old revision
-        (or None if versioning is not supported).
-        
-        If allow_empty == False (the default), raise EmptyCommit if
-        there are no changes to commit.
-        """
+            raise libbe.storage.base.InvalidID(id)
+        if os.path.isdir(path):
+            raise libbe.storage.base.InvalidDirectory(id)
+        f = open(path, "wb")
+        f.write(value)
+        f.close()
+        self._vcs_update(self._u_rel_path(path))
+
+    def _commit(self, summary, body=None, allow_empty=False):
         summary = summary.strip()+'\n'
         if body is not None:
             summary += '\n' + body.strip() + '\n'
@@ -564,35 +730,20 @@ os.listdir(self.get_path("bugs")):
             temp_file = os.fdopen(descriptor, 'wb')
             temp_file.write(summary)
             temp_file.flush()
-            self.precommit()
             revision = self._vcs_commit(filename, allow_empty=allow_empty)
             temp_file.close()
-            self.postcommit()
         finally:
             os.remove(filename)
         return revision
-    def precommit(self):
-        """
-        Executed before all attempted commits.
-        """
-        pass
-    def postcommit(self):
-        """
-        Only executed after successful commits.
-        """
-        pass
-    def revision_id(self, index=None):
-        """
-        Return the name of the <index>th revision.  The choice of
-        which branch to follow when crossing branches/merges is not
-        defined.
 
-        Return None if index==None, revision IDs are not supported, or
-        if the specified revision does not exist.
-        """
+    def revision_id(self, index=None):
         if index == None:
             return None
-        return self._vcs_revision_id(index)
+        revid = self._vcs_revision_id(index)
+        if revid == None:
+            raise libbe.storage.base.InvalidRevision(index)
+        return revid
+
     def _u_any_in_string(self, list, string):
         """
         Return True if any of the strings in list are in string.
@@ -602,23 +753,26 @@ os.listdir(self.get_path("bugs")):
             if list_string in string:
                 return True
         return False
+
     def _u_invoke(self, *args, **kwargs):
         if 'cwd' not in kwargs:
-            kwargs['cwd'] = self.rootdir
+            kwargs['cwd'] = self.repo
         if 'verbose' not in kwargs:
-            kwargs['verbose'] = self.verboseInvoke
+            kwargs['verbose'] = self.verbose_invoke
         if 'encoding' not in kwargs:
             kwargs['encoding'] = self.encoding
         return invoke(*args, **kwargs)
+
     def _u_invoke_client(self, *args, **kwargs):
         cl_args = [self.client]
         cl_args.extend(args)
         return self._u_invoke(cl_args, **kwargs)
+
     def _u_search_parent_directories(self, path, filename):
         """
         Find the file (or directory) named filename in path or in any
         of path's parents.
-        
+
         e.g.
           search_parent_directories("/a/b/c", ".be")
         will return the path to the first existing file from
@@ -629,6 +783,7 @@ os.listdir(self.get_path("bugs")):
         or None if none of those files exist.
         """
         return search_parent_directories(path, filename)
+
     def _use_vcs(self, path, allow_no_vcs):
         """
         Try and decide if _vcs_add/update/mkdir/etc calls will
@@ -637,16 +792,17 @@ os.listdir(self.get_path("bugs")):
         """
         use_vcs = True
         exception = None
-        if self.rootdir != None:
+        if self.repo != None:
             if self.path_in_root(path) == False:
                 use_vcs = False
-                exception = PathNotInRoot(path, self.rootdir)
+                exception = InvalidPath(path, self.repo)
         else:
             use_vcs = False
             exception = VCSnotRooted
         if use_vcs == False and allow_no_vcs==False:
             raise exception
         return use_vcs
+
     def path_in_root(self, path, root=None):
         """
         Return the relative path to path from root.
@@ -657,15 +813,16 @@ os.listdir(self.get_path("bugs")):
         False
         """
         if root == None:
-            if self.rootdir == None:
+            if self.repo == None:
                 raise VCSnotRooted
-            root = self.rootdir
+            root = self.repo
         path = os.path.abspath(path)
         absRoot = os.path.abspath(root)
         absRootSlashedDir = os.path.join(absRoot,"")
         if not path.startswith(absRootSlashedDir):
             return False
         return True
+
     def _u_rel_path(self, path, root=None):
         """
         Return the relative path to path from root.
@@ -674,18 +831,19 @@ os.listdir(self.get_path("bugs")):
         '.be'
         """
         if root == None:
-            if self.rootdir == None:
+            if self.repo == None:
                 raise VCSnotRooted
-            root = self.rootdir
+            root = self.repo
         path = os.path.abspath(path)
         absRoot = os.path.abspath(root)
         absRootSlashedDir = os.path.join(absRoot,"")
         if not path.startswith(absRootSlashedDir):
-            raise PathNotInRoot(path, absRootSlashedDir)
+            raise InvalidPath(path, absRootSlashedDir)
         assert path != absRootSlashedDir, \
             "file %s == root directory %s" % (path, absRootSlashedDir)
         relpath = path[len(absRootSlashedDir):]
         return relpath
+
     def _u_abspath(self, path, root=None):
         """
         Return the absolute path from a path realtive to root.
@@ -694,60 +852,10 @@ os.listdir(self.get_path("bugs")):
         '/a.b/c/.be'
         """
         if root == None:
-            assert self.rootdir != None, "VCS not rooted"
-            root = self.rootdir
+            assert self.repo != None, "VCS not rooted"
+            root = self.repo
         return os.path.abspath(os.path.join(root, path))
-    def _u_create_id(self, name, email=None):
-        """
-        >>> vcs = new()
-        >>> vcs._u_create_id("John Doe", "jdoe@example.com")
-        'John Doe <jdoe@example.com>'
-        >>> vcs._u_create_id("John Doe")
-        'John Doe'
-        """
-        assert len(name) > 0
-        if email == None or len(email) == 0:
-            return name
-        else:
-            return "%s <%s>" % (name, email)
-    def _u_parse_id(self, value):
-        """
-        >>> vcs = new()
-        >>> vcs._u_parse_id("John Doe <jdoe@example.com>")
-        ('John Doe', 'jdoe@example.com')
-        >>> vcs._u_parse_id("John Doe")
-        ('John Doe', None)
-        >>> try:
-        ...     vcs._u_parse_id("John Doe <jdoe@example.com><what?>")
-        ... except AssertionError:
-        ...     print "Invalid match"
-        Invalid match
-        """
-        emailexp = re.compile("(.*) <([^>]*)>(.*)")
-        match = emailexp.search(value)
-        if match == None:
-            email = None
-            name = value
-        else:
-            assert len(match.groups()) == 3
-            assert match.groups()[2] == "", match.groups()
-            email = match.groups()[1]
-            name = match.groups()[0]
-        assert name != None
-        assert len(name) > 0
-        return (name, email)
-    def _u_get_fallback_username(self):
-        name = None
-        for envariable in ["LOGNAME", "USERNAME"]:
-            if os.environ.has_key(envariable):
-                name = os.environ[envariable]
-                break
-        assert name != None
-        return name
-    def _u_get_fallback_email(self):
-        hostname = gethostname()
-        name = self._u_get_fallback_username()
-        return "%s@%s" % (name, hostname)
+
     def _u_parse_commitfile(self, commitfile):
         """
         Split the commitfile created in self.commit() back into
@@ -763,9 +871,9 @@ os.listdir(self.get_path("bugs")):
         return (summary, body)
 
     def check_disk_version(self):
-        version = self.get_version()
-        if version != upgrade.BUGDIR_DISK_VERSION:
-            upgrade.upgrade(self.root, version)
+        version = self.version()
+        #if version != upgrade.BUGDIR_DISK_VERSION:
+        #    upgrade.upgrade(self.repo, version)
 
     def disk_version(self, path=None, use_none_vcs=False,
                      for_duplicate_bugdir=False):
@@ -786,39 +894,17 @@ os.listdir(self.get_path("bugs")):
         if self.sync_with_disk == False:
             raise DiskAccessRequired("set version")
         self.vcs.mkdir(self.get_path())
-        self.vcs.set_file_contents(self.get_path("version"),
-                                   upgrade.BUGDIR_DISK_VERSION+"\n")
+        #self.vcs.set_file_contents(self.get_path("version"),
+        #                           upgrade.BUGDIR_DISK_VERSION+"\n")
+
 
-        
 \f
 if libbe.TESTING == True:
-    def setup_vcs_test_fixtures(testcase):
-        """Set up test fixtures for VCS test case."""
-        testcase.vcs = testcase.Class()
-        testcase.dir = Dir()
-        testcase.dirname = testcase.dir.path
-
-        vcs_not_supporting_uninitialized_user_id = []
-        vcs_not_supporting_set_user_id = ["None", "hg"]
-        testcase.vcs_supports_uninitialized_user_id = (
-            testcase.vcs.name not in vcs_not_supporting_uninitialized_user_id)
-        testcase.vcs_supports_set_user_id = (
-            testcase.vcs.name not in vcs_not_supporting_set_user_id)
-
-        if not testcase.vcs.installed():
-            testcase.fail(
-                "%(name)s VCS not found" % vars(testcase.Class))
-
-        if testcase.Class.name != "None":
-            testcase.failIf(
-                testcase.vcs.detect(testcase.dirname),
-                "Detected %(name)s VCS before initialising"
-                    % vars(testcase.Class))
-
-        testcase.vcs.init(testcase.dirname)
-
-    class VCSTestCase(unittest.TestCase):
-        """Test cases for base VCS class."""
+    class VCSTestCase (unittest.TestCase):
+        """
+        Test cases for base VCS class (in addition to the Storage test
+        cases).
+        """
 
         Class = VCS
 
@@ -827,271 +913,102 @@ if libbe.TESTING == True:
             self.dirname = None
 
         def setUp(self):
+            """Set up test fixtures for Storage test case."""
             super(VCSTestCase, self).setUp()
-            setup_vcs_test_fixtures(self)
+            self.dir = Dir()
+            self.dirname = self.dir.path
+            self.s = self.Class(repo=self.dirname)
+            if self.s.installed() == True:
+                self.s.init()
+                self.s.connect()
 
         def tearDown(self):
-            self.vcs.cleanup()
-            self.dir.cleanup()
             super(VCSTestCase, self).tearDown()
+            if self.s.installed() == True:
+                self.s.disconnect()
+                self.s.destroy()
+            self.dir.cleanup()
 
-        def full_path(self, rel_path):
-            return os.path.join(self.dirname, rel_path)
-
+        def test_installed(self):
+            """
+            See if the VCS is installed.
+            """
+            self.failUnless(self.s.installed() == True,
+                            '%(name)s VCS not found' % vars(self.Class))
 
-    class VCS_init_TestCase(VCSTestCase):
-        """Test cases for VCS.init method."""
 
-        def test_detect_should_succeed_after_init(self):
-            """Should detect VCS in directory after initialization."""
-            self.failUnless(
-                self.vcs.detect(self.dirname),
-                "Did not detect %(name)s VCS after initialising"
+    class VCS_detection_TestCase (VCSTestCase):
+        def test_detection(self):
+            """
+            See if the VCS detects its installed repository
+            """
+            if self.s.installed():
+                self.s.disconnect()
+                self.failUnless(self.s._detect(self.dirname) == True,
+                    'Did not detected %(name)s VCS after initialising'
                     % vars(self.Class))
+                self.s.connect()
 
-        def test_vcs_rootdir_in_specified_root_path(self):
+        def test_no_detection(self):
+            """
+            See if the VCS detects its installed repository
+            """
+            if self.s.installed() and self.Class.name != 'None':
+                self.s.disconnect()
+                self.s.destroy()
+                self.failUnless(self.s._detect(self.dirname) == False,
+                    'Detected %(name)s VCS before initialising'
+                    % self.Class)
+                self.s.init()
+                self.s.connect()
+
+        def test_vcs_repo_in_specified_root_path(self):
             """VCS root directory should be in specified root path."""
-            rp = os.path.realpath(self.vcs.rootdir)
+            rp = os.path.realpath(self.s.repo)
             dp = os.path.realpath(self.dirname)
             vcs_name = self.Class.name
             self.failUnless(
                 dp == rp or rp == None,
                 "%(vcs_name)s VCS root in wrong dir (%(dp)s %(rp)s)" % vars())
 
-
     class VCS_get_user_id_TestCase(VCSTestCase):
         """Test cases for VCS.get_user_id method."""
 
         def test_gets_existing_user_id(self):
             """Should get the existing user ID."""
-            if not self.vcs_supports_uninitialized_user_id:
-                return
-
-            user_id = self.vcs.get_user_id()
-            self.failUnless(
-                user_id is not None,
-                "unable to get a user id")
-
-
-    class VCS_set_user_id_TestCase(VCSTestCase):
-        """Test cases for VCS.set_user_id method."""
-
-        def setUp(self):
-            super(VCS_set_user_id_TestCase, self).setUp()
-
-            if self.vcs_supports_uninitialized_user_id:
-                self.prev_user_id = self.vcs.get_user_id()
-            else:
-                self.prev_user_id = "Uninitialized identity <bogus@example.org>"
-
-            if self.vcs_supports_set_user_id:
-                self.test_new_user_id = "John Doe <jdoe@example.com>"
-                self.vcs.set_user_id(self.test_new_user_id)
-
-        def tearDown(self):
-            if self.vcs_supports_set_user_id:
-                self.vcs.set_user_id(self.prev_user_id)
-            super(VCS_set_user_id_TestCase, self).tearDown()
-
-        def test_raises_error_in_unsupported_vcs(self):
-            """Should raise an error in a VCS that doesn't support it."""
-            if self.vcs_supports_set_user_id:
+            user_id = self.s.get_user_id()
+            if user_id == None:
                 return
-            self.assertRaises(
-                SettingIDnotSupported,
-                self.vcs.set_user_id, "foo")
-
-        def test_updates_user_id_in_supporting_vcs(self):
-            """Should update the user ID in an VCS that supports it."""
-            if not self.vcs_supports_set_user_id:
-                return
-            user_id = self.vcs.get_user_id()
-            self.failUnlessEqual(
-                self.test_new_user_id, user_id,
-                "user id not set correctly (expected %s, got %s)"
-                    % (self.test_new_user_id, user_id))
-
-
-    def setup_vcs_revision_test_fixtures(testcase):
-        """Set up revision test fixtures for VCS test case."""
-        testcase.test_dirs = ['a', 'a/b', 'c']
-        for path in testcase.test_dirs:
-            testcase.vcs.mkdir(testcase.full_path(path))
-
-        testcase.test_files = ['a/text', 'a/b/text']
-
-        testcase.test_contents = {
-            'rev_1': "Lorem ipsum",
-            'uncommitted': "dolor sit amet",
-            }
-
-
-    class VCS_mkdir_TestCase(VCSTestCase):
-        """Test cases for VCS.mkdir method."""
-
-        def setUp(self):
-            super(VCS_mkdir_TestCase, self).setUp()
-            setup_vcs_revision_test_fixtures(self)
-
-        def tearDown(self):
-            for path in reversed(sorted(self.test_dirs)):
-                self.vcs.recursive_remove(self.full_path(path))
-            super(VCS_mkdir_TestCase, self).tearDown()
-
-        def test_mkdir_creates_directory(self):
-            """Should create specified directory in filesystem."""
-            for path in self.test_dirs:
-                full_path = self.full_path(path)
-                self.failUnless(
-                    os.path.exists(full_path),
-                    "path %(full_path)s does not exist" % vars())
-
-
-    class VCS_commit_TestCase(VCSTestCase):
-        """Test cases for VCS.commit method."""
-
-        def setUp(self):
-            super(VCS_commit_TestCase, self).setUp()
-            setup_vcs_revision_test_fixtures(self)
-
-        def tearDown(self):
-            for path in reversed(sorted(self.test_dirs)):
-                self.vcs.recursive_remove(self.full_path(path))
-            super(VCS_commit_TestCase, self).tearDown()
-
-        def test_file_contents_as_specified(self):
-            """Should set file contents as specified."""
-            test_contents = self.test_contents['rev_1']
-            for path in self.test_files:
-                full_path = self.full_path(path)
-                self.vcs.set_file_contents(full_path, test_contents)
-                current_contents = self.vcs.get_file_contents(full_path)
-                self.failUnlessEqual(test_contents, current_contents)
-
-        def test_file_contents_as_committed(self):
-            """Should have file contents as specified after commit."""
-            test_contents = self.test_contents['rev_1']
-            for path in self.test_files:
-                full_path = self.full_path(path)
-                self.vcs.set_file_contents(full_path, test_contents)
-                revision = self.vcs.commit("Initial file contents.")
-                current_contents = self.vcs.get_file_contents(full_path)
-                self.failUnlessEqual(test_contents, current_contents)
-
-        def test_file_contents_as_set_when_uncommitted(self):
-            """Should set file contents as specified after commit."""
-            if not self.vcs.versioned:
-                return
-            for path in self.test_files:
-                full_path = self.full_path(path)
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['rev_1'])
-                revision = self.vcs.commit("Initial file contents.")
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['uncommitted'])
-                current_contents = self.vcs.get_file_contents(full_path)
-                self.failUnlessEqual(
-                    self.test_contents['uncommitted'], current_contents)
-
-        def test_revision_file_contents_as_committed(self):
-            """Should get file contents as committed to specified revision."""
-            if not self.vcs.versioned:
-                return
-            for path in self.test_files:
-                full_path = self.full_path(path)
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['rev_1'])
-                revision = self.vcs.commit("Initial file contents.")
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['uncommitted'])
-                committed_contents = self.vcs.get_file_contents(
-                    full_path, revision)
-                self.failUnlessEqual(
-                    self.test_contents['rev_1'], committed_contents)
-
-        def test_revision_id_as_committed(self):
-            """Check for compatibility between .commit() and .revision_id()"""
-            if not self.vcs.versioned:
-                self.failUnlessEqual(self.vcs.revision_id(5), None)
-                return
-            committed_revisions = []
-            for path in self.test_files:
-                full_path = self.full_path(path)
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['rev_1'])
-                revision = self.vcs.commit("Initial %s contents." % path)
-                committed_revisions.append(revision)
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['uncommitted'])
-                revision = self.vcs.commit("Altered %s contents." % path)
-                committed_revisions.append(revision)
-            for i,revision in enumerate(committed_revisions):
-                self.failUnlessEqual(self.vcs.revision_id(i), revision)
-                i += -len(committed_revisions) # check negative indices
-                self.failUnlessEqual(self.vcs.revision_id(i), revision)
-            i = len(committed_revisions)
-            self.failUnlessEqual(self.vcs.revision_id(i), None)
-            self.failUnlessEqual(self.vcs.revision_id(-i-1), None)
-
-        def test_revision_id_as_committed(self):
-            """Check revision id before first commit"""
-            if not self.vcs.versioned:
-                self.failUnlessEqual(self.vcs.revision_id(5), None)
-                return
-            committed_revisions = []
-            for path in self.test_files:
-                self.failUnlessEqual(self.vcs.revision_id(0), None)
-
-
-    class VCS_duplicate_repo_TestCase(VCSTestCase):
-        """Test cases for VCS.duplicate_repo method."""
-
-        def setUp(self):
-            super(VCS_duplicate_repo_TestCase, self).setUp()
-            setup_vcs_revision_test_fixtures(self)
-
-        def tearDown(self):
-            self.vcs.remove_duplicate_repo()
-            for path in reversed(sorted(self.test_dirs)):
-                self.vcs.recursive_remove(self.full_path(path))
-            super(VCS_duplicate_repo_TestCase, self).tearDown()
-
-        def test_revision_file_contents_as_committed(self):
-            """Should match file contents as committed to specified revision.
-            """
-            if not self.vcs.versioned:
-                return
-            for path in self.test_files:
-                full_path = self.full_path(path)
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['rev_1'])
-                revision = self.vcs.commit("Commit current status")
-                self.vcs.set_file_contents(
-                    full_path, self.test_contents['uncommitted'])
-                dup_repo_path = self.vcs.duplicate_repo(revision)
-                dup_file_path = os.path.join(dup_repo_path, path)
-                dup_file_contents = file(dup_file_path, 'rb').read()
-                self.failUnlessEqual(
-                    self.test_contents['rev_1'], dup_file_contents)
-                self.vcs.remove_duplicate_repo()
-
-
-    def make_vcs_testcase_subclasses(vcs_class, namespace):
-        """Make VCSTestCase subclasses for vcs_class in the namespace."""
-        vcs_testcase_classes = [
-            c for c in (
-                ob for ob in globals().values() if isinstance(ob, type))
-            if issubclass(c, VCSTestCase)]
-
-        for base_class in vcs_testcase_classes:
-            testcase_class_name = vcs_class.__name__ + base_class.__name__
-            testcase_class_bases = (base_class,)
-            testcase_class_dict = dict(base_class.__dict__)
-            testcase_class_dict['Class'] = vcs_class
-            testcase_class = type(
-                testcase_class_name, testcase_class_bases, testcase_class_dict)
-            setattr(namespace, testcase_class_name, testcase_class)
-
+            name,email = libbe.ui.util.user.parse_user_id(user_id)
+            if email != None:
+                self.failUnless('@' in email, email)
+
+    def make_vcs_testcase_subclasses(storage_class, namespace):
+        c = storage_class()
+        if c.versioned == True:
+            libbe.storage.base.make_versioned_storage_testcase_subclasses(
+                storage_class, namespace)
+        else:
+            libbe.storage.base.make_storage_testcase_subclasses(
+                storage_class, namespace)
+
+        if namespace != sys.modules[__name__]:
+            # Make VCSTestCase subclasses for vcs_class in the namespace.
+            vcs_testcase_classes = [
+                c for c in (
+                    ob for ob in globals().values() if isinstance(ob, type))
+                if issubclass(c, VCSTestCase)]
+
+            for base_class in vcs_testcase_classes:
+                testcase_class_name = vcs_class.__name__ + base_class.__name__
+                testcase_class_bases = (base_class,)
+                testcase_class_dict = dict(base_class.__dict__)
+                testcase_class_dict['Class'] = vcs_class
+                testcase_class = type(
+                    testcase_class_name, testcase_class_bases, testcase_class_dict)
+                setattr(namespace, testcase_class_name, testcase_class)
+
+    make_vcs_testcase_subclasses(VCS, sys.modules[__name__])
 
     unitsuite =unittest.TestLoader().loadTestsFromModule(sys.modules[__name__])
     suite = unittest.TestSuite([unitsuite, doctest.DocTestSuite()])
index e84d32a4f1806cd04f33a75384744d013e24a6ed..b0b52affcaf464b57baf33e677526f17cfe960da 100755 (executable)
@@ -27,6 +27,7 @@ import os
 import sys
 
 import libbe
+import libbe.bugdir
 import libbe.command
 import libbe.command.util
 import libbe.version
@@ -52,11 +53,14 @@ class CmdOptionParser(optparse.OptionParser):
         option.validate()
         self._option_by_name[option.name] = option
         opt_strings = ['--'+option.name]
+        dest = option.name.replace('-', '_')
+        assert '_' not in option.name, \
+            'Non-reconstructable option name %s' % option.name
         if option.short_name != None:
             opt_strings.append('-'+option.short_name)
         if option.arg == None: # a callback option
             opt = optparse.Option(
-                *opt_strings, action='callback',
+                *opt_strings, action='callback', dest=dest,
                 callback=self.callback, help=option.help)
         else:
             kwargs = {}
@@ -68,7 +72,7 @@ class CmdOptionParser(optparse.OptionParser):
             opt = optparse.Option(
                 *opt_strings, metavar=option.arg.metavar,
                  default=option.arg.default, action=action,
-                 help=option.help, **kwargs)
+                 dest=dest, help=option.help, **kwargs)
         opt._option = option
         self.add_option(opt)
 
@@ -76,7 +80,11 @@ class CmdOptionParser(optparse.OptionParser):
         args = self._get_args(args)
         options,parsed_args = optparse.OptionParser.parse_args(
             self, args=args, values=values)
-        for name,value in options.__dict__.items():
+        options = options.__dict__
+        for name,value in options.items():
+            if '_' in name: # reconstruct original option name
+                options[name.replace('_', '-')] = options.pop(name)
+        for name,value in options.items():
             if value == '--complete':
                 argument = None
                 option = self._option_by_name[name]
@@ -231,9 +239,9 @@ def main():
         return 1
 
     paginate = 'auto'
-    if options.paginate == True:
+    if options['paginate'] == True:
         paginate = 'always'
-    if options.no_pager== True:
+    if options['no-pager'] == True:
         paginate = 'never'
     libbe.ui.util.pager.run_pager(paginate)
     
@@ -249,7 +257,7 @@ def main():
     if command.requires_bugdir == True:
         storage = libbe.storage.get_storage(options['repo'])
         storage.connect()
-        bugdir = BugDir(storage)
+        bugdir = libbe.bugdir.BugDir(storage, from_storage=True)
     else:
         storage = None
         bugdir = None
index de2138ca759528c8cd608f30c4ab26718a08eb15..64eb30c931caa9d2b44379596182eee571f78087 100644 (file)
@@ -7,6 +7,10 @@ example,
 Note that the Arch VCS backend *enforces* ids with this format.
 """
 
+import re
+from socket import gethostname
+
+import libbe
 import libbe.storage.util.config
 
 def _get_fallback_username(self):
@@ -23,11 +27,11 @@ def _get_fallback_email(self):
     name = _get_fallback_username()
     return "%s@%s" % (name, hostname)
 
-def create_user_id(self, name, email=None):
+def create_user_id(name, email=None):
     """
-    >>> create_id("John Doe", "jdoe@example.com")
+    >>> create_user_id("John Doe", "jdoe@example.com")
     'John Doe <jdoe@example.com>'
-    >>> create_id("John Doe")
+    >>> create_user_id("John Doe")
     'John Doe'
     """
     assert len(name) > 0
@@ -36,14 +40,14 @@ def create_user_id(self, name, email=None):
     else:
         return "%s <%s>" % (name, email)
 
-def parse_user_id(self, value):
+def parse_user_id(value):
     """
-    >>> parse_id("John Doe <jdoe@example.com>")
+    >>> parse_user_id("John Doe <jdoe@example.com>")
     ('John Doe', 'jdoe@example.com')
-    >>> parse_id("John Doe")
+    >>> parse_user_id("John Doe")
     ('John Doe', None)
     >>> try:
-    ...     parse_id("John Doe <jdoe@example.com><what?>")
+    ...     parse_user_id("John Doe <jdoe@example.com><what?>")
     ... except AssertionError:
     ...     print "Invalid match"
     Invalid match
index ab623597d53bb93db7e78e6c6521e6b1896d34a1..645a17c8f1e514d72e1c8af84d015de67eee28b0 100644 (file)
@@ -206,7 +206,7 @@ def child_uuids(child_storage_ids):
     ['123abc', '123def']
     """
     for id in child_storage_ids:
-        fields = libbe.util.id._split(id)
+        fields = _split(id)
         if len(fields) == 1:
             yield fields[0]
 
diff --git a/test.py b/test.py
index fecff8cd9cbd1ad85ccf95864b314f33765cd315..29dece6a0ac7303618cfac0b45f155c63acf0ef9 100644 (file)
--- a/test.py
+++ b/test.py
@@ -57,8 +57,11 @@ def add_module_tests(suite, modname):
         s = mod.suite
     else:
         s = unittest.TestLoader().loadTestsFromModule(mod)
-        sdoc = doctest.DocTestSuite(mod)
-        suite.addTest(sdoc)
+        try:
+            sdoc = doctest.DocTestSuite(mod)
+            suite.addTest(sdoc)
+        except ValueError:
+            pass
     suite.addTest(s)
 
 suite = unittest.TestSuite()