tests/test-eol-update.t
changeset 43205 dfaa477e37a8
parent 43203 d38f9117ee15
child 43268 e88549a02f5e
equal deleted inserted replaced
43204:fd8c3f59b544 43205:dfaa477e37a8
   118   +++ b/a.txt
   118   +++ b/a.txt
   119   @@ -1,3 +1,2 @@
   119   @@ -1,3 +1,2 @@
   120    first
   120    first
   121   -second
   121   -second
   122    third
   122    third
   123   diff --git a/f b/f
       
   124   --- a/f
       
   125   +++ b/f
       
   126   @@ -1,1 +1,1 @@
       
   127   -f\r (esc)
       
   128   +f
       
   129   $ dotest CRLF
   123   $ dotest CRLF
   130   
   124   
   131   % hg clone repo repo-CRLF
   125   % hg clone repo repo-CRLF
   132   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   126   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   133   % a.txt (before)
   127   % a.txt (before)
   157   +++ b/a.txt
   151   +++ b/a.txt
   158   @@ -1,3 +1,2 @@
   152   @@ -1,3 +1,2 @@
   159    first
   153    first
   160   -second
   154   -second
   161    third
   155    third
   162   diff --git a/f b/f
       
   163   --- a/f
       
   164   +++ b/f
       
   165   @@ -1,1 +1,1 @@
       
   166   -f\r (esc)
       
   167   +f
       
   168 
   156 
   169 Test in repo using eol extension, while keeping an eye on how filters are
   157 Test in repo using eol extension, while keeping an eye on how filters are
   170 applied:
   158 applied:
   171 
   159 
   172   $ cd repo
   160   $ cd repo
   175   $ cat > .hg/hgrc <<EOF
   163   $ cat > .hg/hgrc <<EOF
   176   > [extensions]
   164   > [extensions]
   177   > eol =
   165   > eol =
   178   > EOF
   166   > EOF
   179 
   167 
   180 Update to revision 0 which has no .hgeol . Unfortunately, it uses the filter
   168 Update to revision 0 which has no .hgeol, shouldn't use any filters, and
   181 from tip ... which evidently is wrong:
   169 obviously should leave things as tidy as they were before the clean update.
   182 
   170 
   183   $ hg up -c -r 0 -v --debug
   171   $ hg up -c -r 0 -v --debug
   184   resolving manifests
   172   resolving manifests
   185    branchmerge: False, force: False, partial: False
   173    branchmerge: False, force: False, partial: False
   186    ancestor: 000000000000, local: 000000000000+, remote: 15cbdf8ca3db
   174    ancestor: 000000000000, local: 000000000000+, remote: 15cbdf8ca3db
   191    a.txt: remote created -> g
   179    a.txt: remote created -> g
   192   getting a.txt
   180   getting a.txt
   193   filtering a.txt through tolf
   181   filtering a.txt through tolf
   194    f: remote created -> g
   182    f: remote created -> g
   195   getting f
   183   getting f
   196   filtering f through tolf
       
   197   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   184   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   198   $ hg st
   185   $ hg st
   199   M f
       
   200   $ touch .hgeol *  # ensure consistent dirtyness checks ignoring dirstate
       
   201   $ hg up -C -r 0 -v --debug
       
   202   eol: detected change in .hgeol
       
   203   filtering .hgeol through isbinary
       
   204   filtering a.txt through tolf
       
   205   resolving manifests
       
   206    branchmerge: False, force: True, partial: False
       
   207    ancestor: 15cbdf8ca3db+, local: 15cbdf8ca3db+, remote: 15cbdf8ca3db
       
   208   calling hook preupdate.eol: hgext.eol.preupdate
       
   209    f: remote is newer -> g
       
   210   getting f
       
   211   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   212 
   186 
   213   $ hg branch b
   187   $ hg branch b
   214   marked working directory as branch b
   188   marked working directory as branch b
   215   (branches are permanent and global, did you want a bookmark?)
   189   (branches are permanent and global, did you want a bookmark?)
   216   $ hg ci -m b
   190   $ hg ci -m b
   248   +++ b/f
   222   +++ b/f
   249   @@ -1,1 +1,1 @@
   223   @@ -1,1 +1,1 @@
   250   -f\r (esc)
   224   -f\r (esc)
   251   +f
   225   +f
   252 
   226 
   253 Abort the merge with up -C to revision 0 ... but notice how .hgeol changes are
   227 Abort the merge with up -C to revision 0.
   254 not detected correctly: f is filtered with tolf even though there is no filter
   228 Note that files are filtered correctly for revision 0: f is not filtered, a.txt
   255 for f in revision 0, and it thus ends up with working directory changes.
   229 is filtered with tolf, and everything is left tidy.
   256 
   230 
   257   $ touch .hgeol *  # ensure consistent dirtyness checks ignoring dirstate
   231   $ touch .hgeol *  # ensure consistent dirtyness checks ignoring dirstate
   258   $ hg up -C -r 0 -v --debug
   232   $ hg up -C -r 0 -v --debug
   259   eol: detected change in .hgeol
   233   eol: detected change in .hgeol
   260   resolving manifests
   234   resolving manifests
   267    a.txt: remote is newer -> g
   241    a.txt: remote is newer -> g
   268   getting a.txt
   242   getting a.txt
   269   filtering a.txt through tolf
   243   filtering a.txt through tolf
   270    f: remote is newer -> g
   244    f: remote is newer -> g
   271   getting f
   245   getting f
   272   filtering f through tolf
       
   273   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   246   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   274 
   247 
   275   $ touch .hgeol *
   248   $ touch .hgeol *
   276   $ hg st --debug
   249   $ hg st --debug
   277   eol: detected change in .hgeol
   250   eol: detected change in .hgeol
   278   filtering .hgeol through isbinary
   251   filtering .hgeol through isbinary
   279   filtering a.txt through tolf
   252   filtering a.txt through tolf
   280   M f
       
   281   $ hg diff
   253   $ hg diff
   282   diff --git a/f b/f
   254 
   283   --- a/f
   255 Things were clean, and updating again will not change anything:
   284   +++ b/f
       
   285   @@ -1,1 +1,1 @@
       
   286   -f\r (esc)
       
   287   +f
       
   288 
       
   289 Workaround: Update again - this will read the right .hgeol:
       
   290 
   256 
   291   $ touch .hgeol *
   257   $ touch .hgeol *
   292   $ hg up -C -r 0 -v --debug
   258   $ hg up -C -r 0 -v --debug
   293   eol: detected change in .hgeol
   259   eol: detected change in .hgeol
   294   filtering .hgeol through isbinary
   260   filtering .hgeol through isbinary
   295   filtering a.txt through tolf
   261   filtering a.txt through tolf
   296   resolving manifests
   262   resolving manifests
   297    branchmerge: False, force: True, partial: False
   263    branchmerge: False, force: True, partial: False
   298    ancestor: 15cbdf8ca3db+, local: 15cbdf8ca3db+, remote: 15cbdf8ca3db
   264    ancestor: 15cbdf8ca3db+, local: 15cbdf8ca3db+, remote: 15cbdf8ca3db
   299   calling hook preupdate.eol: hgext.eol.preupdate
   265   calling hook preupdate.eol: hgext.eol.preupdate
   300    f: remote is newer -> g
   266   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   301   getting f
       
   302   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   303 
   267 
   304   $ touch .hgeol *
   268   $ touch .hgeol *
   305   $ hg st --debug
   269   $ hg st --debug
   306   eol: detected change in .hgeol
   270   eol: detected change in .hgeol
   307   filtering .hgeol through isbinary
   271   filtering .hgeol through isbinary