Mercurial > hg
view tests/test-fix-clang-format.t @ 42753:fce6dc93a510
rust-dirstate: rust implementation of dirstatemap
The `dirstatemap` is one of the last building blocks needed to get to a
`dirstate.walk` Rust implementation.
Disclaimer: This change is part of a big (10) series of patches, all of which
started as one big changeset that took a long time to write.
This `dirstatemap` implementation is a compromise in terms of complexity both
for me and for the reviewers. I chose to submit this patch right now because
while it is not perfect, it works and is simple enough (IMHO) to be reviewed.
The Python implementation uses a lot of lazy propertycaches, breaks
encapsulation and is used as an iterator in a lot of places, all of which
dictated the somewhat unidiomatic patterns in this change.
Like written in the comments, rewriting this struct to use the typestate
pattern might be a good idea, but this is a good first step.
Differential Revision: https://phab.mercurial-scm.org/D6632
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 10 Jul 2019 09:56:23 +0200 |
parents | 2ecf5c24d0cd |
children |
line wrap: on
line source
#require clang-format Test that a simple "hg fix" configuration for clang-format works. $ cat >> $HGRCPATH <<EOF > [extensions] > fix = > [experimental] > evolution.createmarkers=True > evolution.allowunstable=True > [fix] > clang-format:command=clang-format --style=Google --assume-filename={rootpath} > clang-format:linerange=--lines={first}:{last} > clang-format:pattern=set:**.cpp or **.hpp > EOF $ hg init repo $ cd repo $ printf "void foo(){int x=2;}\n" > foo.cpp $ printf "void\nfoo();\n" > foo.hpp $ hg commit -Am "foo commit" adding foo.cpp adding foo.hpp $ hg cat -r tip * void foo(){int x=2;} void foo(); $ hg fix -r tip $ hg cat -r tip * void foo() { int x = 2; } void foo(); $ cd ..