Camelia, the Perl 6 bug

IRC log for #darcs, 2013-07-20

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:15 bfrank is there a way to make darcs not allow me to name my patch the same as an existing patch?
00:18 sm bfrank: I'm not sure, check section on hooks in the manual
00:18 sm the section
00:19 bfrank it certainly seems like it can cause problems having patches with the exact same name
00:20 sm it seems so, but I've never heard of that here
00:21 sm we just know -p will match the first one with that name. For really exact matching, you can use the patch hash
00:21 kmels joined #darcs
00:22 bfrank how do you do that?
00:22 bfrank like what arguments do you have to pass to use it, and how do you determine what the hash is?
00:24 sm good questions. Add the --xml flag to darcs changes or darcs log to see the hash, then use --match 'hash HASH'
00:24 sm this is rarely needed though
00:25 bfrank if I commit a lot of patches with the same name, I can definitely see a need for it
00:25 sm maybe. I guess that's something I mostly avoid
00:25 bfrank it is interesting that log doesn't expose the hash by default
00:26 bfrank I can understand that under normal circumstances, it would be good to try to avoid the hash, since a patch name is more descriptive, and user defined, but I can also see cases where having the hash obviously would make things very precise
00:35 kmels_ joined #darcs
00:35 sm git would show it, but darcs has different mindset re ui
00:36 bfrank well, is there some other way to do it?
00:36 bfrank like "patch name" + 1 or something?
00:36 sm to do what ?
00:36 bfrank to increment to a patch name newer than the first one it finds with that same name
00:37 sm if there is a hook that darcs calls at record time, you could hack it up there. There's nothing built in
00:37 bfrank like, how could I tell it to use the 2, 3, 4 instance of a patch with the same name
00:38 bfrank it seems like darcs should have a user friendly way of being able to specify the next instance of a patch of a certain name
00:38 bfrank "this is my patch^2"
00:38 bfrank "this is my patch^3"
00:38 bfrank or something like that
00:38 bfrank of course I could also number them as I create them, if I remember what number I left off at
00:39 sm or use a script to create them
00:40 sm I don't see the actual need yet, but I'm sure you have one in mind
00:41 bfrank as long as all your patch names are unique, you would be right
00:41 bfrank but there is a reason git/hg etc use sha's to uniquely identify revisions
00:42 bfrank if the suggested way of addressing revisions in hg/git was to depend on userdefined commit names/patch names, I think hg/git would have a lot of problems too
00:43 bfrank but I am sure there are people in here who have used darcs far longer than I've even known about it, so perhaps there is something I am just not understanding
00:47 sm one thing that's important to know, which you may already have picked up: hg/git are optimised for tracking state (whole-project snapshots), darcs is optimised for tracking changes
00:47 sm both can mostly emulate the other's strength, but not quite as well or as naturally
00:49 bfrank hm
00:50 sm typical example: with darcs it's tricky to recreate a repo's state as of a certain date, unless you tagged it, or you rely on the patch ordering in this particular repo copy
00:51 sm while hg/git were made for this. But they'll have a harder time freely pulling/pushing patches in and out in any old order
00:52 bfrank now how exactly do you gain with pulling/pushing patches in and out in any old order?
00:52 bfrank because in many of the scenarios where I have tried, it seems like darcs is still failing
00:52 bfrank I guess, becausse the patches I want have some kind of linked dependencies of some type
00:53 sm right, darcs allows it subject to patch dependencies, which it calculates automatically based on overlapping hunks
00:53 bfrank so already, in some of the cases where I was trying to pull things kind of willy nilly, I am not really seeing much benefit
00:54 bfrank because apparently a lot of my patches were dependent on each other, I guess, similarly to being dependent in hg/git
00:55 bfrank so, I guess, I am still trying to produce scenarios where darcs's model is better than git/hg
00:55 sm yes, but at least it doesn't make them ALL dependent, unnecessarily. And darcs users tend to commit orthogonal patches, which depend on each other less
00:56 bfrank I do like that darcs is smart enough to cherry pick, and remember what was picked
00:56 sm the dependency enforcement is annoying but for your own good. (There is a rebase command when you really need to get around it.)
00:56 bfrank now, out of curiosity, when I start with a patch, is there some way to tell it to take the patch and all the patches dependent on it?
00:57 sm the result is a very very simple mental model, useful for non-vcs-experts (and busy experts)
00:57 sm pull and push will include the dependencies by default
00:57 bfrank I find it actually harder to wrap my head around
00:57 sm most commands will in fact
00:58 bfrank what I seem to be seeing, is if I decline the first of a group of dependent patches, that it just stops
00:58 sm well sure, it's a bit alien right now. But I think you'll find it easier to teach a newcomer to use darcs than git. Some of that is just ui design philosophy, some is the simpler model enabled by tracking changes. I think.
00:58 bfrank I haven't hit a scenario yet, where it declined a bunch, but continued with the next set that weren't dependent on the stuff I didn't pull in
00:59 sm that's what it does normally. Sometimes adding --dry clarifies what it thinks the dependencies are.
01:00 bfrank I guess I don't have enough changesets, and/or don't have enough that have some dependencies and some that don't
01:02 sm eg: darcs obliterate -p 'some patch' --dry
01:04 bfrank hm
01:05 bfrank I mean, it is also possible there is a best practices, or a philosophy for patch naming, etc that really needs to be espoused to be productive with darcs
01:06 bfrank I haven't really seen much in the way of documentation talking about the ways to best utilize what it was designed to do
01:06 bfrank and/or showing common workflows
01:06 bfrank as simple as it seems, it is sort of complicated in a way as well
01:06 sm I'm sure that's true, but for example ?
01:08 bfrank I mean, just the workflows, for example, I could probably spend a lot of time converting some of my hg repos to darcs, but then I would feel sort of powerless, because I wouldn't know necessarily how to get useful stuff back out of it easily, at least, not in the same ways as I feel I would be able to do with hg
01:08 bfrank that isn't to say I think hg is perfect, because I obviously wouldn't be investigating alternative vcs and ways of doing things, if I thought it was. Or even git for the matter, which I think is a hideous mess.
01:09 sm what about http://darcs.net/HintsAndTi​ps#best-practices-for-darcs
01:09 bfrank hmm
01:09 bfrank let me try reading that
01:10 bfrank I guess another crazy aspect to this, is how you can keep track of what branch changes belong to
01:11 sm they don't belong to any branch, they're just in a branch or not :)
01:11 bfrank sure, when they are split apart into seperate repos, that is obvious
01:11 bfrank because I can name my "branch" to make it clear what it is for
01:12 bfrank but when I start sending that stuff back to the main repo, it starts to lose context
01:13 sm what context ? like what was the purpose of the branch it came from ?
01:14 bfrank yeah
01:14 sm as a darcs user I expect the patch to make that clear
01:14 bfrank what if you were using the branch to indicate it, but now you have patches that aren't as obvious
01:14 bfrank can that be fixed?
01:15 sm uh, make better commit messages ?
01:15 bfrank and/or does that mean, every patch in the branch needs to have something prepended or appended to indicate it's branch or something
01:17 sm some organisations/workflows may require this kind of extra metadata, there's usually ways to track it - some convention in the commit message, or hooks/scripts that record the extra info. Someone here has a setup for tracking when patches were applied
01:17 bfrank hm
01:17 sm but the great majority of darcs users don't track that kind of thing. The branch a patch came from is ephemeral
01:17 bfrank which is sort of the way git is
01:18 bfrank but not necessarily the way hg is
01:18 sm the patch has a short and long description, an author, and that's that. (Also a *patch context*, which is which patches it depends on.)
01:20 sm I think you're saying hg tracks the history of everything that's every happened in the repo & branches ? And darcs doesn't do that (by itself) - absolutely true
01:21 mizu_no_oto joined #darcs
01:21 bfrank I guess, I am indicating darcs is a bit closer to git in that regard
01:21 sm it manages sets of changes in a highly usable way, but isn't a complete history tracker
01:21 bfrank and that I guess, I sort of prefer the mercurial way
01:22 bfrank darcs definitely seems like it takes time to wrap your head around
01:22 sm I think it's easier to use it :)
01:22 bfrank well, here is a question
01:22 sm but I hear you
01:22 bfrank what would happen if I knew of a specific change I wanted to propagate
01:22 bfrank but I didn't know all the previous revisions it was dependent on
01:23 bfrank how could I "skip" those earlier revisions, select the one I know I want, and have darcs retroactively say yes to the ones I skipped?
01:23 sm you mean, pull the change you want, and the ones it depends on ?
01:24 sm shoot I have to run
01:24 bfrank hmm, yes, I think that is what I want
01:24 sm darcs pull -p 'change I want'
01:24 sm done
01:24 sm thanks for the chat, see you
01:24 bfrank ha, I guess I gotta play with it more
01:24 bfrank I look forward to chatting again
01:24 bfrank cya
01:39 mizu_no_oto joined #darcs
01:41 edwardk joined #darcs
01:47 kmels__ joined #darcs
02:44 m3ga joined #darcs
02:46 m3ga I'm doing 'darcs get http://code.haskell.org/haskell-src-exts' but it says its not a repository. darcs is version 2.8.1 from debian.
02:46 m3ga any idea what
02:46 m3ga 's wrong?
02:47 m3ga ah, ERROR 403: Forbidden on _darcs/format
02:53 m3ga left #darcs
03:27 bfrank joined #darcs
03:46 edwardk joined #darcs
05:02 edwardk joined #darcs
08:23 stepcut_ joined #darcs
08:24 marmoute_ joined #darcs
08:52 whaletechno joined #darcs
08:52 adnap_ joined #darcs
08:52 Gowilla joined #darcs
08:52 pr_ joined #darcs
08:52 gh_ joined #darcs
08:52 marmoute_ joined #darcs
08:52 stepcut joined #darcs
08:52 bfrank joined #darcs
08:52 dolio joined #darcs
08:52 konundra joined #darcs
08:52 MasseR joined #darcs
08:52 mal`` joined #darcs
08:52 favonia joined #darcs
08:52 burp_ joined #darcs
08:52 sm joined #darcs
08:52 jgross_ joined #darcs
08:52 byorgey joined #darcs
08:52 thorkilnaur__ joined #darcs
08:52 xymox joined #darcs
08:52 alexsuraci joined #darcs
08:52 dixie_ joined #darcs
08:52 jyyou joined #darcs
08:52 dleverton joined #darcs
08:52 felipe joined #darcs
08:52 idnar joined #darcs
08:52 mtp joined #darcs
08:52 mulander joined #darcs
08:52 alexsuraci_ joined #darcs
08:52 jgross joined #darcs
08:52 lispy joined #darcs
08:52 lambdabot joined #darcs
08:52 epta joined #darcs
08:52 Igloo joined #darcs
08:52 dcoutts joined #darcs
08:52 graffic joined #darcs
08:52 haasn joined #darcs
08:52 mornfall joined #darcs
08:52 frozencemetery joined #darcs
08:52 lpsmith joined #darcs
08:52 kaol joined #darcs
09:13 _ilbot joined #darcs
09:13 Topic for #darcs is now http://darcs.net/ | logs: http://irclog.perlgeek.de/darcs/ | darcs 2.8.4 is out http://darcs.net/Releases/2.8
09:15 owst joined #darcs
09:16 stepkut joined #darcs
09:19 owst http://www.staff.science.uu.nl/~swie​r004/Publications/versionControl.pdf a new paper on the foundations of version control by Swierstra and Loh
09:22 whaletechho joined #darcs
09:29 lelit joined #darcs
09:31 dolio joined #darcs
09:32 favonia joined #darcs
09:50 donri joined #darcs
09:59 nomeata joined #darcs
12:47 edwardk joined #darcs
12:49 jgross left #darcs
13:48 edwardk joined #darcs
13:52 mizu_no_oto joined #darcs
13:58 edwardk joined #darcs
14:11 kmels__ joined #darcs
14:43 raichoo joined #darcs
15:20 bfrank does darcs still have the get --intersection option?
15:25 bfrank I see the help for pull shows --intersection, but get doesn't
15:29 lelit joined #darcs
15:30 alexei joined #darcs
15:33 donri joined #darcs
15:35 mizu_no_oto joined #darcs
15:55 burp joined #darcs
16:24 bfrank also, when pulling in changes, is there a way to have it say yes to a specific number? Like typing 50y or something, and having it doing yes 50 times?
16:38 sm bfrank: I think you can echo yyyyyyyyyy | darcs pull or something
16:40 bfrank hmm
16:46 kmels__ joined #darcs
17:06 owst joined #darcs
17:11 kmels joined #darcs
17:17 raichoo joined #darcs
19:23 bfrank why is oblierate listed as unsafe?
19:23 mtp because it deletes history
19:24 bfrank but, if the history I have I pulled, I can always repull it
19:24 mtp you might want unpull, not obliterate
19:24 bfrank so you mean, it is unsafe if I remove something local, because there wouldn't be any way to get it back
19:24 mtp err
19:25 mtp i forget the differences between unpull and obliterate
19:25 mtp forgive me, i haven't had enough coffee :)
19:25 bfrank ha, well, I am new to darcs, so I certainly wouldn't know
19:26 sm unpull and obliterate are the same, one is an alias of the other IIRC
19:27 sm "unpull" was considered not scary enough
19:27 mtp yeah, whoops
19:27 mtp no difference. :)
19:27 bfrank is darcs considered more mature now? It seems like lots of docs I read are from 2004, 2007, or what not,and indicate people had lots of problems and ended up switching to hg or git
19:28 mtp i switched *from* git recently
19:28 bfrank I don't really seem to see modern articles where people talk about how it has matured or addressed these issues
19:28 mtp git has gotten absolutely hairy and incomprehensible
19:28 bfrank certainly
19:28 bfrank I use hg for that reason
19:29 bfrank but darcs sounds very interesting
19:29 bfrank it doesn't really seem like hg/git handle the workflow that darcs does
19:30 sm yes darcs is more mature now. It got a lot of bad press early on due to the "exponential merge" issue where occasionally it would bog down merging patch, and that hurt it. That was solved, almost-certainly-never-hap​pens-but-we-cant-prove-it. The other big thing was that the lead developer moved on, so darcs has been a little bit orphaned ever since
19:30 bfrank :(
19:30 sm a lot of people love it, or it would have faded away
19:30 bfrank yeah, it seems like the concepts are pretty neat
19:31 bfrank I mean, I replicated the test that the camp video does, and it is pretty cool to be able to pull in changes out of order like that
19:31 sm don't get me wrong, it has/has had a lot of people working on it, but we rotate in and out and the project is always under-resourced.
19:31 bfrank ah
19:32 bfrank so the lead developer isn't involved at all, anymore?
19:32 sm right
19:32 bfrank what happened there?
19:33 sm as far as I know he could not see how to prove the correctness and efficiency of darcs' basic theory, or could not afford the effort, or got tired of the project and just moved on
19:34 bfrank oh
19:34 sm it's still a good question, I'd like to hear his current opinion
19:34 bfrank that seems so unfortunate, considering how interesting of an idea it is
19:34 sm he later tried to reimplement darcs ideas on top of git: iolaus
19:36 sm I guess there are some deep challenges in the theory that noone has been able to solve. Things that don't seem to have any effect on daily use.
19:37 bfrank hmm
19:37 sm and probably some people just get tired of fighting git
19:37 bfrank well yeah
19:37 sm Igloo or Heffalump could say more about the theory
19:37 bfrank I definitely went to hg because of git
19:37 bfrank but then I heard one of the creators of hg talk about darcs in a video
19:38 bfrank and I was curious about it
19:38 sm I mean, probably some people get tired of avoiding git and its ecosystem and just suck it up and devote a third of their gray matter to learning it :)
19:38 bfrank hahaha
19:39 frozencemetery the emacs tool magit makes git a lot less painful, but it's still an unpleasant experience.  When upstream is git, though, there's not too much that can be done.
19:41 bfrank I guess that helps explain why it seems like talk of darcs disappeared around 2007, and sometimes as late as 2011
19:42 * sm doesn't know about that
19:43 bfrank does darcs have a testing framework?
19:43 sm sure
19:43 bfrank does it have a lot of unit tests?
19:44 sm I think so, and many functional tests
19:44 sm it also uses the type system to rule out bugs more even than most haskell projects
19:45 sm that said, to be honest it's still full of bugs :(
19:45 bfrank oh
19:48 sm I should clarify that. The kind of bugs where some ui or workflow corner case got overlooked when someone added a new feature. Because underresourced, and.. testing a version control system in all possible scenarios is *really hard*
19:48 bfrank yeah
19:48 bfrank that makes sense
19:49 sm I don't remember the last time I hit a bug that interfered with getting work done
19:49 bfrank what about all the talk of really nested conflicts or whatever it was called
19:49 bfrank is that common?
19:50 sm you'd have to point to the specific talk, or I'll probably guess wrong what that is
19:51 bfrank I dunno, there seems to be a consensus on the things I read from years ago, that nested conflicts caused problems
19:53 sm I think that's the same as the "exponential merge" issue, and it got greatly improved by the new darcs-2 repo format which has been default for a few years now, and it's still a good idea to not introduce too many conflicts into your repo as it can slow it down a bit, and most darcs users probably have learned to avoid this automatically
19:54 sm by resolving conflicts before recording, rather than with a separate patch afterward
19:55 sm darcs log -s indicates conflicts ("conflictors") as C, I believe.
19:56 bfrank hmm
19:57 bfrank slow it down, in what way?
19:58 bfrank like operations taking a long time or something?
19:59 sm yes, gradual slowdowns of normal repo operations. Perhaps noticeable in a large repo which has accumulated extensive conflicts.
20:01 * sm summons more #darcs experts
20:02 bfrank it is something that once it got all that bad publicity, there was a mass migration to hg or git or something, and now it sort of feels like a ghost town
20:03 sm sure, there was a war for attention and we didn't win. I wouldn't say ghost town though
20:04 bfrank ha
20:04 bfrank I guess, I mean, it lost a lot of mindshare
20:04 bfrank haven't really seen many darcs advocacy articles beyond 2007
20:04 sm yes, but that can shift again, at least a bit
20:05 bfrank I guess, on some level, I hope it does
20:05 bfrank because there are some really cool concepts in darcs
20:05 sm I usually think darcs still has growth potential
20:05 bfrank cool
20:08 bfrank darcs definitely has the upperhand, I mean, I haven't seen git or hg copy what it can do yet
20:08 sm I think it can fill simple to fairly demanding version control needs with less complexity than any other vcs
20:09 bfrank what would it take to scale it to the level that hg/git can handle
20:10 sm you mean wrt size of data, length of history, speed ? long-term committed time of some very serious haskell dev talent I think
20:11 bfrank hmm
20:12 bfrank so what is the best process if the repo grows to big? Get it, and start a new one from the latest code?
20:13 sm if your needs are that large, you'd probably convert to git. That's what GHC did
20:13 bfrank or hg, since I avoid git like the plague
20:13 bfrank it seems like what you gain from hg/git, you lose in the flexibility of darcs
20:13 sm sure, but I fear you are in another shrinking niche there
20:13 sm sorry
20:13 bfrank it would be nice to not have to make that choice at some point
20:13 sm :)
20:13 bfrank ha
20:15 sm yes there is a trade off. If you want the ultimate scalability and history tracking, you must deal with the complexity of hg/git. But a huge number of vcs users don't need that and would far rather have a vcs that keeps things simple
20:16 sm especially if you can easily migrate between vcs's when needed
20:19 sm I and others are trying to build up a good hosting hub for darcs: http://hub.darcs.net
20:20 sm http://hub.darcs.net/simon/ghc-old there is one of the largest darcs repos I've seen, and it's still quite usable IIRC
20:20 sm someone here has one at work that's much bigger
20:21 bfrank cool
20:23 raichoo joined #darcs
20:24 sm and no vcs scales up forever, including git
20:24 bfrank true
20:26 bfrank I guess it is a tradeoff
20:26 bfrank with darcs it might not be the fastest, but it could be the simplest
20:26 sm right. IMHO that's its current niche and selling point
20:28 sm (in addition to being a very interesting, successful and influential experiment)
20:28 bfrank how easy is it to pull in a hg or git repo into darcs?
20:28 bfrank or cvs?
20:28 bfrank or svn?
20:28 bfrank it would be interesting to attempt converting popular repos, and testing how they perform
20:29 sm easy to convert a single branch, hard to preserve multi-branch history I think
20:29 sm ask owst
20:30 sm I converted a client's large svn repo to darcs years ago and have been rocking along ever since
20:30 bfrank hmm
20:31 bfrank these are the things I guess I like to hear, see
20:31 sm success stories
20:31 bfrank success stories, exactly
20:32 bfrank so far, a casual search of darcs seems to show reports of people switching away to git or hg and stuff
20:33 bfrank it seems to be implied, that darcs was actually a very successful popular vcs at some point, though
20:33 bfrank I guess, pre git/hg
20:33 sm within the haskell community, for a while it was *the* vcs
20:34 sm with the rise of github, git becomes just too compelling
20:35 sm a lot of projects switch for that, not for git itself. I did for one of mine
20:35 bfrank is that what you are trying to do with the darcs hub?
20:35 sm there are plenty of darcs users living success stories right now. But marketing takes time and effort too..
20:35 bfrank true
20:36 bfrank I guess, it is a chicken and egg kinda thing. I just happened to stumble on darcs from a video talking about hg. If I didn't have an open mind, and only went by what I found in google searchs, I might have just kept on walking by
20:37 bfrank and if I wasn't so interested in the unusual and different, that I sometimes would go out of my comfort zone, or buck the trend with what is popular to find a new or different way to doing things. Which darcs definitely seems to fit the mold
20:38 bfrank most people aren't like that, though
20:38 bfrank I could see darcs making an agile workflow work really nicely
20:38 bfrank the kinds of things where hg/git need plugins and extensions on top of them to make that workflow easier to do
20:40 sm yes, it works really nicely
20:42 sm even if I may have some darcs-kool-aid in my bloodstream at this point
20:43 bfrank ha
20:43 bfrank I think I am getting some myself
20:43 bfrank ;)
20:44 sm I'm blathering on, but I should be eating lunch and doing a release. Try using it for a while and see if you agree with me. see you :)
20:44 bfrank is there a way to re-order patches by date?
21:07 mizu_no_oto joined #darcs
21:37 Gowilla bfrank: no, sorry
21:38 Gowilla we could do with a suite of ways to reorder patches
21:56 donri joined #darcs
22:21 bfrank yeah, sorting by date would be nice
23:50 sm darcsden 1.1 released and announced!
23:51 sm let me know of any problems
23:52 teratorn joined #darcs

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | summary