1. Steps to reproduce:
Add a patch with adddir ending with a trailing slash.
Notice the directory is created as normal, and can be deleted as
normal.
However, the deletion patch cannot be pulled by a Darcs repo that has
the patch index enabled.
2. Code to reproduce:
> mkdir a b
> cd b
> darcs init
> cd ../a
> darcs init
> mkdir directory
> darcs add directory
Adding 'directory'
> darcs record
What is your email address? wwilkinson@dwavesys.com
adddir ./directory
Shall I record this change? (1/1) [ynW...], or ? for more options: y
Do you want to Record these changes? [Yglqk...], or ? for more options:
y
What is the patch name? add directory
Do you want to add a long comment? [yn]n
Finished recording patch 'add directory'
> darcs send -o patch.patch ../b
What is your email address (default wwilkinson@dwavesys.com)?
HINT: if you want to change the default remote repository to
/tmp/darcs-test/b,
quit now and issue the same command with the --set-default flag.
patch 85affde62a9f865d72f30cb69ce64003647edd62
Author: wwilkinson@dwavesys.com
Date: Thu Sep 14 11:01:14 PDT 2017
* add directory
Shall I send this patch? (1/1) [ynW...], or ? for more options: y
Do you want to Send these patches? [Yglqk...], or ? for more options: y
Wrote patch to /tmp/darcs-test/a/patch.patch.
> # Now, add a trailing slash to the adddir statement, and delete the
hash so the patch can
> # be accepted.
> sed -e s'#adddir ./directory#adddir ./directory/#' -e '/Patch bundle
hash:/,+2d' patch.patch > tweaked.patch
> cd ../b
> darcs apply ../a/tweaked.patch
> rm -rf directory
> darcs record
What is your email address? wwilkinson@dwavesys.com
rmdir ./directory
Shall I record this change? (1/1) [ynW...], or ? for more options: y
Do you want to Record these changes? [Yglqk...], or ? for more options:
y
What is the patch name? remove directory
Do you want to add a long comment? [yn]n
Finished recording patch 'remove directory'
> # Now, try pulling these patches.
> mkdir darcs-no-index darcs-with-index
> cd darcs-no-index
> darcs init
> darcs pull ../b
HINT: if you want to change the default remote repository to
/tmp/darcs-test/b,
quit now and issue the same command with the --set-default flag.
patch 85affde62a9f865d72f30cb69ce64003647edd62
Author: wwilkinson@dwavesys.com
Date: Thu Sep 14 11:01:14 PDT 2017
* add directory
Shall I pull this patch? (1/2) [ynW...], or ? for more options: y
patch ec49e71e8fbbe9bc0acbaef42122ce33e1a237b3
Author: wwilkinson@dwavesys.com
Date: Thu Sep 14 11:07:19 PDT 2017
* remove directory
Shall I pull this patch? (2/2) [ynW...], or ? for more options: y
Do you want to Pull these patches? [Yglqk...], or ? for more options: d
Finished pulling.
> cd ../darcs-with-index
> darcs init
> darcs optimize enable-patch-index
> darcs pull ../b
HINT: if you want to change the default remote repository to
/tmp/darcs-test/b,
quit now and issue the same command with the --set-default flag.
patch 85affde62a9f865d72f30cb69ce64003647edd62
Author: wwilkinson@dwavesys.com
Date: Thu Sep 14 11:01:14 PDT 2017
* add directory
Shall I pull this patch? (1/2) [ynW...], or ? for more options: y
patch ec49e71e8fbbe9bc0acbaef42122ce33e1a237b3
Author: wwilkinson@dwavesys.com
Date: Thu Sep 14 11:07:19 PDT 2017
* remove directory
Shall I pull this patch? (2/2) [ynW...], or ? for more options: y
Do you want to Pull these patches? [Yglqk...], or ? for more options: y
darcs: bug at src/Darcs/Repository/PatchIndex.hs:265 compiled Nov 1
2016 11:38:36
couldn't find ./directory in patch index
See http://wiki.darcs.net/BugTracker/Reporting for help on bug
reporting.
3. What I expected to happen:
The trailing slash should make no difference. The patch should have
been pullable even when the patch-index is enabled (just like how it's
pullable
when the patch-index is NOT enabled).
4. What did happen:
The patches are only pullable when patch index is disabled.
5. What darcs version are you using? (Try: darcs --exact-version)
darcs compiled on Nov 1 2016, at 11:40:33
Context:
[TAG 2.12.4
Guillaume Hoffmann <guillaumh@gmail.com>**20160914143914
Ignore-this: fee5b93a45e3a175e63e6fdb837ec4dc
]
Compiled with:
HTTP-4000.3.3
array-0.5.1.0
async-2.1.0
attoparsec-0.13.1.0
base-4.8.2.0
base16-bytestring-0.1.1.6
binary-0.7.5.0
bytestring-0.10.6.0
containers-0.5.6.2
cryptohash-0.11.9
data-ordlist-0.4.7.0
directory-1.2.2.0
fgl-5.5.3.0
filepath-1.4.0.0
graphviz-2999.18.1.2
hashable-1.2.4.0
haskeline-0.7.2.1
html-1.0.1.2
mmap-0.5.9
mtl-2.2.1
network-2.6.3.1
network-uri-2.6.1.0
old-time-1.1.0.3
parsec-3.1.11
process-1.2.3.0
random-1.1
regex-applicative-0.3.3
regex-compat-tdfa-0.95.1.4
sandi-0.4.0
tar-0.5.0.3
terminfo-0.4.0.1
text-1.2.2.1
time-1.5.0.1
transformers-0.4.2.0
transformers-compat-0.5.1.4
unix-2.7.1.0
unix-compat-0.4.2.0
utf8-string-1.0.1.1
vector-0.11.0.0
zip-archive-0.3.0.5
zlib-0.6.1.1
6. What operating system are you running?
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
|