Re: [darcs-users] Mac OS X issue with permissions (?)

2018-06-05 Thread Evan Laforge
On Tue, Jun 5, 2018 at 5:25 AM, Max Brown  wrote:
> Hello Darcs-Users,
>
> I just upgraded from version 2.3 to 2.10.1, using the Mac OS X binaries on
> the website. Those contained a manfile and the main executable, which I
> plopped into /usr/local/bin.
>
> While the main things work fine (like recording and pushing patches), there
> is a permission problem with using darcs diff.
>
> Can someone tell me what I am doing wrong?

I don't think you're doing anything wrong, I think darcs diff just
doesn't work on OS X.  It hasn't for quite a few years.
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] so long and thanks for all the darcs

2018-04-08 Thread Evan Laforge
By the way, I found this thread really interesting and informative,
and learned some things about git and version control.  So thanks for
the discussion.

Content-addressed storage is pretty interesting.  There was actually a
filesystem based on this, for Plan 9, called fossil.  It was a true
write-only filesystem and had some interesting properties that are
somewhat reminiscent of git.  The paper is a good read, like all the
plan 9 papers.

Another random aside, is that one of the things that broke when I
ported from darcs to git is that git removed the empty directories.
It turns out git doesn't support empty directories at all.  Of that's
due to how they implemented content-address storage and not the idea
itself, but it's still a bit of an awkward side-effect, along with the
more well-known "doesn't really support renames" one.
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] so long and thanks for all the darcs

2018-03-19 Thread Evan Laforge
On Sun, Mar 18, 2018 at 9:31 AM, Ben Franksen  wrote:
>>  > We don't have a "kernel" with a stable API,
>>
>> git doesn't have a stable API either.  I don't know about the current
>> developers, but Linus basically promised that the *UI* would be
>> backward compatible.  Any scripts you've written will continue to
>> work.  The internal APIs are subject to change, though, and that's why
>> there's never been a successful refactoring into a "libgit" plus CLI
>> module.

I don't know if it's "officially" stable, but in practice I've been
relying on libgit2 for the last 4+ years (not sure how many exactly,
but a long time).

However, it's an independent implementation that works directly on the
database, so it's really the disk format that's stable.  It looks like
both github and and gitlab use it as a backend now, so presumably they
have plenty of attention and developers, and command line git won't be
able to break it without a lot of people finding out right away.
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] so long and thanks for all the darcs

2018-03-05 Thread Evan Laforge
On Mon, Mar 5, 2018 at 2:08 AM, Ben Franksen  wrote:
> I have just tried this and in fact when I resume the edit all the escape
> sequences are printed literally. However, the editor does react to them:
> I can quit using ":q" and the garbage on the screen isn't actually put
> in the log. Still a bug which I intend to fix, see
> http://bugs.darcs.net/issue2572.

Good deal.  I know these kinds of weird terminal interaction bugs are
not necessarily easy or fun to track down, but it's one of those
usability details that no one notices when it works and everyone
complains when it doesn't :)
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] so long and thanks for all the darcs

2018-03-05 Thread Evan Laforge
On Mon, Mar 5, 2018 at 1:19 AM, Ben Franksen  wrote:
> But you /can/ work in the same way with darcs: just don't (q)uit, rather
> say (d)one. Then use 'darcs amend' to add more changes or 'darcs amend
> --unrecord' to remove changes. There is also the --edit-long-comment
> option for amend.

Yes, I also often worked this way.  I don't know why I didn't use it
more than I did though... maybe because of:

> We could improve the workflow a bit by presenting the changes in the
> opposite order with 'amend --unrecord', so it acts more like an undo.

Yes, I have definitely wanted exactly this feature more than once.
I'm all for it.
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] so long and thanks for all the darcs

2018-03-04 Thread Evan Laforge
On Sun, Mar 4, 2018 at 2:46 AM, Ben Franksen  wrote:
>> There are a few other quibbles, like how obliterate -O is too slow to
>> be useful,
>
> (perhaps we should have made --no-minimize the default?)

Is that what you get when you ^C while it's working?  If so, yeah I'd
optimize for speed over disk usage.

>> conflict markers don't label their sections, ^Z out of
>> editing a commit message can badly hose the terminal,
>
> I guess that is on Windows (it would be ^D or rather ^C on Linux and it
> works there). Our Windows support is lacking, sadly, mostly because I
> have not yet managed to set up an environment where I can build and test
> on Windows.

Actually it's xterm on linux.  I *think* I saw it on iterm2 on OS X as
well.  It doesn't happen with 2.10.1, and does with 2.12.5.

My guess it that it has to do with how darcs prompts put the terminal
into raw mode, then vim of course uses raw mode, somehow the state
saving and restoring gets messed up when you ^Z out and fg back in.
It's easy for me to reproduce:

Record changes in darcs 2.12.5, then say yes to "add a long comment"
where EDITOR=vim.  Now ^Z out of vim, and then fg back.  At that
point, vim is in command mode, but any keys just appear literally on
the screen, so there's no way to save or quit or do anything.  The
only way out is to kill vim from another terminal, at which point
darcs finishes the record (I guess it doesn't mind that vim return
nonzero?).

>> and you need an
>> obscure DARCS_DONT_ESCAPE_8BIT to show utf8 properly, but any complex
>> tool has its share of those kind of things.
>
> True. Just to mention it, I fixed this particular problem some time ago
> (not yet released, partly because it doesn't yet work on Windows as well
> as on Linux, see below).

Glad to hear :)

>> And then of course that it's
>> increasingly non-mainstream compared to git + github or gitlab, and
>> probably causes people to think twice before getting involved.  I
>> dislike a monoculture too but you can only die on so many hills at
>> once :)
>
> ;-) I have chosen to die on this one and don't expect many others to
> stay at my side... and I do need a somewhat longer break every now and then.

I'm glad someone is doing it, the commutative patch approach is quite
nice and it should be developed.

I also looked into pijul, but at the time the log command was broken
and it made me think if they're still at the state where basic
commands just don't work at all sometimes and no one notices then it's
not yet ready to trust with a real project.  I wish them luck too.

WRT branches, I too like the simplicity of them just being separate
repos.  Maybe this just needs a wrapper command that understands the
tree structure of the various branches, and then can do higher level
operations across branches like pull or push them all, or visualize
where they are, or whatever.  At least for me making the whole thing
feel lighter weight would go a long way, even if it's really the same
underneath.  The other thing would be making it all faster, maybe it
could be lazy by default or have some way to get a COW copy without
having to copy or hardlink a zillion patch files.  I guess the global
cache is already doing that, but it's still not sub-second, and it
seems to grow with repo size.

The idea of splitting the branch on a conflict is very interesting.
Sometimes it seems awkward to back out if I pull a conflicting patch,
so any pull can be scary.  I guess it's because the conflict detritus
gets mixed in with uncommitted local changes.  I would not be scared
if I knew that I could just delete the branch to back out.  Branching
history rather than mutating the present should be a familiar concept
to Haskell programmers :)

Also, I know this is external tool territory, but there really needs
to be some nicer way to merge than looking for 'v's and trying to
figure out what all those *s and =s mean and what happened and what
changed.  Even just documentation examples of how to integrate with a
3-way merge tool could help a lot.

While I'm at the wishing well it would be nice if interactive record
could save its state so you don't have to redo it all if you quit out
of it.  This could get the effect of git's staged commit but without
the complicated "cache" layer, just a file with the record state that
you can use to resume if you want.  I know I've whinged about this
before, but it *is* nice how in git I can do add -p, then quit, make
some more changes, add some more hunks, etc. and commit at the end.
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] so long and thanks for all the darcs

2018-03-03 Thread Evan Laforge
On Sat, Mar 3, 2018 at 6:26 PM, Karl O. Pinc  wrote:
> I use darcs, git, and mercurial; git only
> for non-technical reasons.  I'm pretty much on-board
> with the git critique of:
> https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/

Can't say I disagree much with that either :)

> This being so, I'm curious why a darcs user would choose
> git over mercurial.

Honestly, because I don't know mercurial.  I should fix that someday.
My impression is that it's like git but with a more sensible command
line interface, and has an elaborate plugin system with tons of
extensions (which nice in a way but scary in another way).

Is there a document for mercurial from the perspective of darcs out there?
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


[darcs-users] so long and thanks for all the darcs

2018-03-03 Thread Evan Laforge
I recently switched my main project from darcs to git.

I'm mentioning it because I feel like it might be one of the larger
and older darcs repos out there, with the exception of darcs itself
(10 years, 6328 patches, around 140k lines of haskell).  The reasons
were that I wanted to use both diff and whatsnew (2.10 has broken
diff, >2.10 has working diff (I think), but very slow whatsnew), and I
wanted in-repo branches.  Separate repos directories have their
advantages, but practically speaking it's nice to able to back up
everything with a single git push --all, and being really easy to
stick notes and partial work into a new branch means I tend to
actually do that.  I have lost work due to not bothering to push a
branch to hub.darcs.net... my own fault, but ease of use is important.
There are a few other quibbles, like how obliterate -O is too slow to
be useful, conflict markers don't label their sections, ^Z out of
editing a commit message can badly hose the terminal, and you need an
obscure DARCS_DONT_ESCAPE_8BIT to show utf8 properly, but any complex
tool has its share of those kind of things.

I think the main thing is the feeling that darcs development is not
moving very quickly, so bugs and regressions take a long time to be
noticed, and then to be fixed.  And then of course that it's
increasingly non-mainstream compared to git + github or gitlab, and
probably causes people to think twice before getting involved.  I
dislike a monoculture too but you can only die on so many hills at
once :)

But I still think darcs is and has always been great, and I'm sad to
go, so I wanted to thank everyone involved with its development.  I
will surely miss darcs every time I have to do a rebase just to pull a
patch, or have to stash things just to merge, or silently lose changes
due to weird interactions between working set, cache, and repo, or
forced pushes due to rebase mess silently destroying commits, etc.
The darcs export process was mostly trouble-free, except it still
seems to have some bugs related to case-insensitive filesystems, but
redoing it on linux solved the problem.  So thanks for that feature as
well, it's one of the things that gave me confidence to stick with
darcs for as long as I did.

So that's my final experience report and "exit interview", I hope it's
interesting and useful!
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] preparing a 2.14 release

2017-12-12 Thread Evan Laforge
I vote for just revert the patch, assuming it's still easy to do.  The
"release discipline" I'm familiar with is to always revert any
regressions as soon as possible, unless they are fixing something more
important.  And if I read the patch notes correctly, it seems like
this was a case where the documentation said it would detect conflicts
but it never did, and it took years for anyone to notice, so it seems
not so critical.  Once the regression is fixed then there original
patch can be amended with a performance fix at leisure.

On Tue, Dec 12, 2017 at 4:00 PM, Guillaume Hoffmann  wrote:
> I agree, we should also fix this problem for 2.14, thanks for recalling us :)
>
> I still do not know what we should do about it in little time,
> implementing _darcs/conflicts seems to me the best solution but also
> just reverting the change would be a good temporary solution until we
> get it right.
>
> Guillaume
>
> 2017-12-12 16:06 GMT-03:00 Evan Laforge :
>> Can we revert the patch that causes issue 2541?  For me, the slowdown
>> is a strong enough reason to either compile a 2.10 for linux (which I
>> recall is tricky because you have to also install an old ghc) or
>> migrate off darcs.  I haven't done either yet because I mostly work on
>> OS X and the 2.10 binary is still available.  In any case, I think the
>> feature added "look for conflicting files" which makes everything so
>> slow is not worth making whatsnew so slow over.
>>
>> I'm surprised there hasn't been a bigger fuss about this, maybe there
>> are no medium sized darcs repos left?
>>
>> On Mon, Dec 11, 2017 at 6:34 AM, Guillaume Hoffmann  
>> wrote:
>>> Hi all,
>>>
>>> there has been a recent breakage of darcs 2.12 build on stackage, and
>>> fixing it would require bumping several dependencies upper bounds,
>>> including base.
>>>
>>> Rather than doing that, I find more economical to prepare a release of
>>> Darcs 2.14. For this we need to fix the following:
>>>
>>> * windows compilation (broken by Ben's encoding changes)
>>> * make dependency on graphviz optional (hence the command `darcs show
>>> dependencies`) (see http://bugs.darcs.net/patch1626 )
>>>
>>> There are still bundles to review and tons of bugs to fix, but they
>>> are not blockers for a 2.14.0 release.
>>>
>>> Opinions?
>>>
>>> Guillaume
>>> ___
>>> darcs-users mailing list
>>> darcs-users@osuosl.org
>>> https://lists.osuosl.org/mailman/listinfo/darcs-users
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] preparing a 2.14 release

2017-12-12 Thread Evan Laforge
Can we revert the patch that causes issue 2541?  For me, the slowdown
is a strong enough reason to either compile a 2.10 for linux (which I
recall is tricky because you have to also install an old ghc) or
migrate off darcs.  I haven't done either yet because I mostly work on
OS X and the 2.10 binary is still available.  In any case, I think the
feature added "look for conflicting files" which makes everything so
slow is not worth making whatsnew so slow over.

I'm surprised there hasn't been a bigger fuss about this, maybe there
are no medium sized darcs repos left?

On Mon, Dec 11, 2017 at 6:34 AM, Guillaume Hoffmann  wrote:
> Hi all,
>
> there has been a recent breakage of darcs 2.12 build on stackage, and
> fixing it would require bumping several dependencies upper bounds,
> including base.
>
> Rather than doing that, I find more economical to prepare a release of
> Darcs 2.14. For this we need to fix the following:
>
> * windows compilation (broken by Ben's encoding changes)
> * make dependency on graphviz optional (hence the command `darcs show
> dependencies`) (see http://bugs.darcs.net/patch1626 )
>
> There are still bundles to review and tons of bugs to fix, but they
> are not blockers for a 2.14.0 release.
>
> Opinions?
>
> Guillaume
> ___
> darcs-users mailing list
> darcs-users@osuosl.org
> https://lists.osuosl.org/mailman/listinfo/darcs-users
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] Proposal: make DARCS_DONT_ESCAPE_8BIT=1 the default

2017-09-26 Thread Evan Laforge
All I can say is it's about time!  This has been one of those traps
where darcs messes things up and you have to go find some obscure
variable to fix it for as long as I've used darcs.

On Tue, Sep 26, 2017 at 3:48 PM, Ben Franksen  wrote:
> ...now that the encoding stuff is in screened, this seems to be a
> sensible move. It means that darcs will show non-ASCII text (in meta
> data as well as in content) in un-escaped form in the user's locale
> encoding. Things like control characters are still escaped by default as
> are spaces at the end of a line.
>
> I guess this is what people expect from a tool like darcs nowadays. I
> also guess that few users even know about this environment setting. And
> casual users or newcomers will tend to think that encodings other than
> ASCII still aren't well supported in darcs.
>
> Of course, the user's locale encoding might not be the one in which a
> patch was recorded, in which case the text might look strange. But with
> the wide-spread use of UTF8 these days this is becoming less and less
> likely (and there remains the option to explicitly set the environment
> variable to 0).
>
> I have a (simple) patch for that but I want to give users and devs the
> opportunity to voice any objections.
>
> Cheers
> Ben
>
> ___
> darcs-users mailing list
> darcs-users@osuosl.org
> https://lists.osuosl.org/mailman/listinfo/darcs-users
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


[darcs-users] OS X darcs 2.10.1 diff: darcs: /usr/bin/diff: fileAccess: permission denied (Operation not permitted)

2017-08-02 Thread Evan Laforge
I just wrote up this bug but then discovered it doesn't affect 2.12,
so maybe it's not worth chasing down.  Still though, 2.10.1 is the
latest version with an OS X binary download, and compiling darcs
yourself involves downloading a huge amount of haskell infrastructure,
so I'd guess OS X people will mostly be on 2.10.  And of course 2.12
has that slow whatsnew so for me at least 2.10 is better, except for:

Here's another darcs bug that's come up:

Lately every time I use 'darcs diff' I get this error.  I tried
putting on all the verbose flags I could and it still won't tell me
what it's actually trying to run:

% d diff --last=1 --debug --verbose --timings
Wed Aug  2 18:10:40 PDT 2017: Beginning identifying repository .
Wed Aug  2 18:10:40 PDT 2017: Done identifying repository .
Wed Aug  2 18:10:40 PDT 2017: Identified darcs-2 repo:
/Users/elaforge/src/seq/solkattu-group
Wed Aug  2 18:10:41 PDT 2017: Reading patch file: patch
82a516548d00143cb282ff9b2d54b72e5f708f21
Author: qdun...@gmail.com
Date:   Wed Aug  2 15:40:36 PDT 2017
  * solkattu: extract tempo to its own argument
Wed Aug  2 18:10:41 PDT 2017: I'm doing copyFileUsingCache on
patches/000858-246ed887d585d50bbdeb0f3e2036e01ccd1baa8a3b007af3efadfdfd41e520be
Wed Aug  2 18:10:41 PDT 2017: About to gzFetchFilePS from
"/Users/elaforge/src/seq/solkattu-group/_darcs/patches/000858-246ed887d585d50bbdeb0f3e2036e01ccd1baa8a3b007af3efadfdfd41e520be"
Wed Aug  2 18:10:41 PDT 2017: gzFetchFilePS done.
darcs: /usr/bin/diff: fileAccess: permission denied (Operation not permitted)

--store-in-memory doesn't help.  Even --diff-command='echo %1 %2'
gives the same result.  /usr/bin/diff exists, and has permissions
0755, and works fine, so I don't know who exactly is getting that
error.


Probably the best course is to fix the slow whatsnew, and then update
the OS X binary on http://darcs.net/Binaries
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


Re: [darcs-users] whatsnew -l much slower in darcs 2.12.5

2017-07-31 Thread Evan Laforge
Thanks for the response.  Let me know if you need any help with reproduction.

On Mon, Jul 31, 2017 at 10:45 AM, Guillaume Hoffmann
 wrote:
> Hi Evan,
>
> thanks for reporting the issue and showing the output of strace, it
> seems there is something going on with the cache system. I will try to
> look at this soon.
>
> Guillaume
>
> 2017-06-25 2:00 GMT-03:00 Evan Laforge :
>> I've been using the darcs 2.10.1 binary available for OS X, but I
>> recently tried 2.12.5 and whatsnew -l is much slower.  E.g.:
>>
>> % time ~src/hs/darcs-2.12.5/dist/build/Darcs/darcs  w -l
>> ...
>> ~src/hs/darcs-2.12.5/dist/build/Darcs/darcs w -l  2.48s user 0.47s
>> system 101% cpu 2.909 total
>>
>> % time darcs w -l
>> ...
>> darcs w -l  0.13s user 0.04s system 96% cpu 0.181 total
>>
>> Restricting to a single file, e.g. 'darcs w -l X' is still very slow.
>> Without -l, both old and new are fast.  This is on a medium sized
>> repo:
>>
>> % darcs show repo
>> Format: hashed, darcs-2
>>   Root: /Users/elaforge/src/seq/main
>>   Pristine: HashedPristine
>>  Cache: thisrepo:/Users/elaforge/src/seq/main,
>> cache:/Users/elaforge/Library/Caches/darcs, repo:hub.darcs.net:karya
>> boringfile Pref: boring
>> Default Remote: hub.darcs.net:karya
>>Num Patches: 5692
>>
>> The slowdown is also visible in the linux version.  On linux, I tried
>> running with strace, and it seems to be constantly running
>> mkdir("..cache/patches"), stat(".../.cache/patches"), then
>> link("_darcs/patches/...", ".cache/patches") -> EEXIST, repeating for
>> many different patches.  It doesn't seem to get stuck at any time,
>> just be processing lots of patches.  wc on the strace output shows
>> 130k lines.  So maybe that's related?
>>
>> Anyone else see this?
>> ___
>> darcs-users mailing list
>> darcs-users@osuosl.org
>> https://lists.osuosl.org/mailman/listinfo/darcs-users
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users


[darcs-users] whatsnew -l much slower in darcs 2.12.5

2017-06-24 Thread Evan Laforge
I've been using the darcs 2.10.1 binary available for OS X, but I
recently tried 2.12.5 and whatsnew -l is much slower.  E.g.:

% time ~src/hs/darcs-2.12.5/dist/build/Darcs/darcs  w -l
...
~src/hs/darcs-2.12.5/dist/build/Darcs/darcs w -l  2.48s user 0.47s
system 101% cpu 2.909 total

% time darcs w -l
...
darcs w -l  0.13s user 0.04s system 96% cpu 0.181 total

Restricting to a single file, e.g. 'darcs w -l X' is still very slow.
Without -l, both old and new are fast.  This is on a medium sized
repo:

% darcs show repo
Format: hashed, darcs-2
  Root: /Users/elaforge/src/seq/main
  Pristine: HashedPristine
 Cache: thisrepo:/Users/elaforge/src/seq/main,
cache:/Users/elaforge/Library/Caches/darcs, repo:hub.darcs.net:karya
boringfile Pref: boring
Default Remote: hub.darcs.net:karya
   Num Patches: 5692

The slowdown is also visible in the linux version.  On linux, I tried
running with strace, and it seems to be constantly running
mkdir("..cache/patches"), stat(".../.cache/patches"), then
link("_darcs/patches/...", ".cache/patches") -> EEXIST, repeating for
many different patches.  It doesn't seem to get stuck at any time,
just be processing lots of patches.  wc on the strace output shows
130k lines.  So maybe that's related?

Anyone else see this?
___
darcs-users mailing list
darcs-users@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-users