Generic Diff3 for Algebraic Datatypes
Uložené v:
| Názov: | Generic Diff3 for Algebraic Datatypes |
|---|---|
| Autori: | Vassena, Marco, 1991 |
| Zdroj: | Proceeding TyDe 2016, Proceedings of the 1st International Workshop on Type-Driven Development. :62-71 |
| Predmety: | Datatype-Generic Programming, Dependent Types, Diff3 |
| Popis: | Many version control systems, including Git and Mercurial, rely on diff3 to merge different revisions of the same file. More precisely diff3 automatically merges two text files, given a common base version, comparing them line by line and raising conflicts when the changes made are irreconcilable. The program ignores the actual structure of the data stored in the files, hence it might generate spurious conflicts, which must be manually resolved by the user. In this paper, we present a state-based, three-way, persistent, data-type generic diff3 algorithm whose increased precision in detecting changes reduces the number of false conflicts raised and improves its merging capabilities. We have implemented the algorithm in Agda, a proof assistant with dependent types, and developed a model to reason about “diffing” and merging. We have formalized sanity properties and specifications of diff3 and proved that our algorithm meets them. Furthermore, we have identified the minimal conditions under which the merging algorithm raises a conflict and established a structural invariant preserved. |
| Prístupová URL adresa: | https://research.chalmers.se/publication/249246 https://research.chalmers.se/publication/508858 |
| Databáza: | SwePub |
| FullText | Text: Availability: 0 CustomLinks: – Url: https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=EBSCO&SrcAuth=EBSCO&DestApp=WOS&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary&Func=Links&author=Vassena%20M Name: ISI Category: fullText Text: Nájsť tento článok vo Web of Science Icon: https://imagesrvr.epnet.com/ls/20docs.gif MouseOverText: Nájsť tento článok vo Web of Science |
|---|---|
| Header | DbId: edsswe DbLabel: SwePub An: edsswe.oai.research.chalmers.se.0968fb78.aeb0.4ce3.9e1e.2090728dae88 RelevancyScore: 759 AccessLevel: 6 PubType: Conference PubTypeId: conference PreciseRelevancyScore: 759.438537597656 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Generic Diff3 for Algebraic Datatypes – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Vassena%2C+Marco%22">Vassena, Marco</searchLink>, 1991 – Name: TitleSource Label: Source Group: Src Data: <i>Proceeding TyDe 2016, Proceedings of the 1st International Workshop on Type-Driven Development</i>. :62-71 – Name: Subject Label: Subject Terms Group: Su Data: <searchLink fieldCode="DE" term="%22Datatype-Generic+Programming%22">Datatype-Generic Programming</searchLink><br /><searchLink fieldCode="DE" term="%22Dependent+Types%22">Dependent Types</searchLink><br /><searchLink fieldCode="DE" term="%22Diff3%22">Diff3</searchLink> – Name: Abstract Label: Description Group: Ab Data: Many version control systems, including Git and Mercurial, rely on diff3 to merge different revisions of the same file. More precisely diff3 automatically merges two text files, given a common base version, comparing them line by line and raising conflicts when the changes made are irreconcilable. The program ignores the actual structure of the data stored in the files, hence it might generate spurious conflicts, which must be manually resolved by the user. In this paper, we present a state-based, three-way, persistent, data-type generic diff3 algorithm whose increased precision in detecting changes reduces the number of false conflicts raised and improves its merging capabilities. We have implemented the algorithm in Agda, a proof assistant with dependent types, and developed a model to reason about “diffing” and merging. We have formalized sanity properties and specifications of diff3 and proved that our algorithm meets them. Furthermore, we have identified the minimal conditions under which the merging algorithm raises a conflict and established a structural invariant preserved. – Name: URL Label: Access URL Group: URL Data: <link linkTarget="URL" linkTerm="https://research.chalmers.se/publication/249246" linkWindow="_blank">https://research.chalmers.se/publication/249246</link><br /><link linkTarget="URL" linkTerm="https://research.chalmers.se/publication/508858" linkWindow="_blank">https://research.chalmers.se/publication/508858</link> |
| PLink | https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsswe&AN=edsswe.oai.research.chalmers.se.0968fb78.aeb0.4ce3.9e1e.2090728dae88 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1145/2976022.2976026 Languages: – Text: English PhysicalDescription: Pagination: PageCount: 10 StartPage: 62 Subjects: – SubjectFull: Datatype-Generic Programming Type: general – SubjectFull: Dependent Types Type: general – SubjectFull: Diff3 Type: general Titles: – TitleFull: Generic Diff3 for Algebraic Datatypes Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Vassena, Marco IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 01 Type: published Y: 2016 Identifiers: – Type: issn-locals Value: CTH_SWEPUB Titles: – TitleFull: Proceeding TyDe 2016, Proceedings of the 1st International Workshop on Type-Driven Development Type: main |
| ResultId | 1 |
Nájsť tento článok vo Web of Science