packages feed

darcs 2.14.4 → 2.14.5

raw patch · 10 files changed

+73/−47 lines, 10 files

Files

CHANGELOG view
@@ -1,3 +1,20 @@+Darcs 2.14.5, 6 August 2020++  * Resolve issue2650++    This is a stupid and rather unfortunate bug that affects all previous+    versions of the 2.12 and 2.14 branch. It can lead to corruption of the+    _darcs/format file in repos where *future* darcs versions add an+    alternative format property. The bug affects commands rebase suspend,+    rebase pull, and rebase apply.++    It is possible to manually fix the corruption by deleting from+    _darcs/format strings of the form "Unknown property: ". Future releases+    will contain a work-around that automatically fixes this particular kind+    of corruption when reading the format file, in case it should ever+    happen in practice. Nevertheless we strongly recommend to upgrade and+    avoid using the darcs versions affected by this bug.+ Darcs 2.14.4, 28 April 2020    * Restored the ability to run our shell tests, at least when building
darcs.cabal view
@@ -1,6 +1,6 @@ cabal-version:  1.24 Name:           darcs-version:        2.14.4+version:        2.14.5 License:        GPL-2 License-file:   COPYING Author:         David Roundy <droundy@darcs.net>, <darcs-devel@darcs.net>
release/distributed-context view
@@ -1,1 +1,1 @@-Just "\nContext:\n\n\n[TAG 2.14.4\nBen Franksen <ben.franksen@online.de>**20200429121444\n Ignore-this: 515570fbeb07f14bf8359f4c414b27f3b75f26d03b92c1b1e35b49e3bdd9efca3d444d36989d9434\n] \n"+Just "\nContext:\n\n\n[TAG 2.14.5\nBen Franksen <ben.franksen@online.de>**20200806192304\n Ignore-this: 2c4a08e40916e6c0e2dfde4eb66752af766640f92a4dbb847812e06fc0142c6da8592d68199f6985\n] \n"
src/Darcs/Repository/Format.hs view
@@ -63,7 +63,7 @@     show HashedInventory = hashedInventoryFormat     show NoWorkingDir = noWorkingDirFormat     show RebaseInProgress = rebaseInProgressFormat-    show (UnknownFormat f) = "Unknown format: " ++ f+    show (UnknownFormat f) = f  readRepoProperty :: String -> RepoProperty readRepoProperty input@@ -167,7 +167,7 @@     wp x = case partition isKnown x of                (_, []) -> Nothing                (_, unknowns) -> Just . unwords $-                    "Can't write repository format: " : map show unknowns+                    "Can't write repository: unknown formats:" : map show unknowns  -- | @'transferProblem' source target@ returns 'Just' an error message if we -- cannot transfer patches from a repo in format @source@ to a repo in format@@ -192,7 +192,7 @@   where     rp x | any isKnown x = Nothing     rp [] = impossible-    rp x = Just . unwords $ "Can't understand repository format:" : map show x+    rp x = Just . unwords $ "Can't read repository: unknown formats:" : map show x  -- |'findProblems' applies a function that maps format-entries to an optional -- error message, to each repoformat entry. Returning any errors.
tests/annotate.sh view
@@ -1,6 +1,7 @@ #!/usr/bin/env bash . lib +rm -rf temp1 darcs init temp1 cd temp1 mkdir a b@@ -12,9 +13,9 @@ darcs annotate c darcs annotate c | grep "a@b.com" cd ..-rm -rf temp1  # issue1473 annotate repodir+rm -rf temp1 mkdir temp1 cd temp1 darcs init@@ -31,9 +32,9 @@ diff inner outer  cd ..-rm -rf temp1  # issue2207 : annotate on directories+rm -rf temp1 darcs init temp1 cd temp1 mkdir d@@ -41,12 +42,12 @@ darcs record -lam 'p1' darcs annotate d | grep 'p1' cd ..-rm -rf temp1  # issue1473 - check that annotate works with and without # repodir and with "." argument.  It should fail with the empty string as # a single argument and without any arguments. +rm -rf temp1 darcs init temp1 cd temp1 echo 'Example content.' > f@@ -61,4 +62,3 @@ darcs annotate --repodir=temp1 f not darcs annotate --repodir=temp1 not darcs annotate --repodir=temp1 ''-rm -rf temp1
tests/bad-format.sh view
@@ -20,12 +20,10 @@  cat temp2/_darcs/format -rm -rf temp1+rm -rf temp3 -not darcs get temp2 temp1 2> err+not darcs get temp2 temp3 2> err  cat err grep intentional-error err-grep 'understand repository format' err--rm -rf temp1 temp2+grep -i "read repository.*unknown format" err
tests/issue1277-repo-format.sh view
@@ -33,14 +33,14 @@  echo impossible >> _darcs/format  echo 'Example content.' > f  not darcs add f > log 2>&1- grep "Can't understand repository format" log+ grep -i "read repository.*unknown format" log  not darcs whatsnew > log 2>&1- grep "Can't understand repository format" log+ grep -i "read repository.*unknown format" log  not darcs init > log 2>&1  grep "You may not run this command in a repository" log- grep "Can't understand repository format" log+ grep -i "read repository.*unknown format" log  cd ..  not darcs whatsnew --repodir R2 > log 2>&1  grep "R2 looks like a repository directory," log- grep "Can't understand repository format" log+ grep -i "read repository.*unknown format" log cd ..
tests/log.sh view
@@ -62,6 +62,7 @@  # Some tests for the output of log when combined with move. +rm -rf temp2 darcs init temp2 cd temp2 date > foo@@ -95,6 +96,7 @@ # darcs changes should be able to pull up the history for a file #   using its moved and not-yet recorded new name +rm -rf temp3 darcs init temp3 cd temp3 touch b@@ -107,6 +109,7 @@ ## Asking "darcs log" about an unrecorded file d/f will list the ## patch that creates the parent directory d/ (instead of no patches). +rm -rf temp4 darcs init temp4 cd temp4 mkdir d@@ -120,6 +123,7 @@ ## issue1632 - 'darcs changes d/f' should not list any changes, ## where d is part of the repo and f is a non-existent file. +rm -rf temp5 darcs init temp5 cd temp5 @@ -136,6 +140,7 @@ ## issue1888 - changes --context is broken when topmost patch ## is a clean tag. +rm -rf temp6 darcs init temp6 cd temp6 
tests/patch-index-creation.sh view
@@ -32,32 +32,29 @@ ## SOFTWARE.  . lib-rm -rf R S +rm -rf R darcs init --repo R cd R darcs show patch-index | grep 'Patch Index is not yet created.' # init- cd ..-rm -rf R +rm -rf R darcs init --repo R --with-patch-index cd R darcs show patch-index | grep 'Patch Index is in sync with repo.' # init --patch-index- cd .. +rm -rf S darcs clone R S cd S darcs show patch-index | grep 'Patch Index is not yet created.' # clone- cd ..-rm -rf S +rm -rf S darcs clone R S --with-patch-index cd S darcs show patch-index | grep 'Patch Index is in sync with repo.' # clone --patch-index- cd ..  rm -rf repo repo2@@ -65,10 +62,9 @@ echo 'I understand the consequences of my action' | darcs convert darcs-2 repo repo2  cd repo2 darcs show patch-index | grep 'Patch Index is not yet created.' # convert- cd ..-rm -rf repo repo2 +rm -rf repo repo2 gunzip -c $TESTDATA/simple-v1.tgz | tar xf - echo 'I understand the consequences of my action' | darcs convert darcs-2 repo repo2 --with-patch-index cd repo2@@ -96,4 +92,3 @@ darcs show patch-index | grep 'Patch Index is not yet created.' # log -a file --no-patch-index  cd ..-rm -rf R S repo repo2
tests/repoformat.sh view
@@ -2,13 +2,14 @@  . lib -rm -rf garbage future+rm -rf garbage mkdir garbage cd garbage-darcs  init-echo gobbledygook > _darcs/format+darcs init+echo gobbledygook >> _darcs/format cd .. +rm -rf future mkdir future cd future darcs init@@ -21,25 +22,24 @@ EOF cd .. - # check the rules for reading and writing  ## garbage repo: we don't understand anything-# get garbage repo+rm -rf temp1 not darcs get garbage temp1 2> log-grep -i "can't understand repository format" log-rm -rf temp1 log+grep -i "read repository.*unknown format" log  # pull from garbage repo+rm -rf temp1 mkdir temp1 cd temp1 darcs init not darcs pull ../garbage 2> log-grep -i "can't understand repository format" log+grep -i "read repository.*unknown format" log cd ..-rm -rf temp1  # apply in garbage repo+rm -rf temp1 mkdir temp1 cd temp1 darcs init@@ -48,18 +48,23 @@ darcs send -a --context=empty-context -o ../bundle.dpatch . cd ../garbage not darcs apply ../bundle.dpatch 2> log-grep -i "can't understand repository format" log+grep -i "read repository.*unknown format" log cd ..-rm -rf temp1 bundle.dpatch  # add in garbage repo cd garbage touch toto not darcs add toto 2> log-grep -i "can't understand repository format" log+grep -i "read repository.*unknown format" log cd .. -rm -rf garbage+# rebase suspend in garbage repo+cd garbage+not darcs rebase suspend --last=1 2> log+grep -i "read repository.*unknown format" log+# issue2650+not grep 'Unknown format' _darcs/format+cd ..   ## future repo: we don't understand one@@ -70,6 +75,7 @@  # get future repo: ok # --to-match is needed because of bug###+rm -rf temp1 darcs get future temp1 --to-match "name titi" cd temp1 darcs changes@@ -77,18 +83,18 @@ darcs add toto darcs record -am 'blah' cd ..-rm -rf temp1  # pull from future repo: ok+rm -rf temp1 mkdir temp1 cd temp1 darcs init darcs pull ../future -a darcs changes | grep titi cd ..-rm -rf temp1  # apply in future repo: !ok+rm -rf temp1 mkdir temp1 cd temp1 darcs init@@ -98,15 +104,20 @@ cd ../future not darcs apply ../bundle.dpatch 2> log cat log-grep -i "can't write repository format" log+grep -i "write repository.*unknown format" log cd ..-rm -rf temp1 bundle.dpatch  # record in future repo: !ok cd future touch toto not darcs add toto 2> log-grep -i "can't write repository format" log+grep -i "write repository.*unknown format" log cd .. -rm -rf future #No future!+# rebase suspend in future repo+cd future+not darcs rebase suspend --last=1 2> log+grep -i "write repository.*unknown format" log+# issue2650+not grep 'Unknown format' _darcs/format+cd ..