Camelia, the Perl 6 bug

IRC log for #darcs, 2013-04-10

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

All times shown according to UTC.

Time Nick Message
00:23 edeast_ joined #darcs
00:30 edeast_ joined #darcs
01:00 delamonpansie joined #darcs
01:08 alexsuraci joined #darcs
01:11 edeast joined #darcs
01:17 dcoutts joined #darcs
01:21 edwardk joined #darcs
01:31 dolio joined #darcs
01:42 mulander_ joined #darcs
01:55 edwardk joined #darcs
02:02 edeast joined #darcs
02:20 mizu_no_oto joined #darcs
02:38 mizu_no_oto joined #darcs
02:50 preflex_ joined #darcs
03:06 mizu_no_oto joined #darcs
03:21 edwardk joined #darcs
03:42 mizu_no_oto joined #darcs
05:35 dixie joined #darcs
06:17 lelit joined #darcs
07:14 raichoo joined #darcs
07:52 alexei joined #darcs
08:29 nomeata joined #darcs
11:10 javier_rooster joined #darcs
11:32 owst joined #darcs
11:33 owst revert deletes unrecorded but added files!! This is stupid. If I didn't have my respository mirrored by Dropbox I'd be screwed
11:43 javier_rooster joined #darcs
13:07 mizu_no_oto joined #darcs
13:27 mizu_no_oto joined #darcs
13:42 donri joined #darcs
14:06 owst joined #darcs
14:23 mizu_no_oto joined #darcs
15:30 dolio joined #darcs
15:34 raichoo joined #darcs
15:55 sm yeah that is kind of stupid
15:57 owst sm: what do you think about `darcs revert` not presenting newly added files. Perhaps with a message "you have newly added files, these cannot be reverted - use darcs remove" or somesuch
16:01 sm I think it should just unadd them, not delete them
16:01 sm ie revert what you did
16:01 owst But revert is for working dir changes - the reverse of adding a new file, is removing it :-)
16:02 sm lalala I can't hear you
16:02 owst :-)
16:02 sm darcs revert is for undoing darcs add (imho)
16:02 sm if not, what are we complaining about :)
16:03 owst heh
16:03 owst I'm not sure, all I know is, it didn't do what I expected, and nearly screwed me over :-)
16:03 sm for example, if I created or copied a file into my working copy, that's nothing to do with darcs - it shouldn't revert that operation
16:05 owst sure
16:33 lelit IMHO, darcs should always perform the least dangerous thing; for example, when it does a rmdir on a non empty dir it does not really remove it...
16:35 whaletechno joined #darcs
16:43 donri personally i'd like it to have something like a transaction log with undo, and then freely do "dangerous" operations without confirmation
16:44 donri something stronger than git's reflog, something that knows about working dir states
17:07 mizu_no_oto joined #darcs
17:17 edwardk joined #darcs
17:27 alexei joined #darcs
17:46 dolio joined #darcs
17:46 alexei joined #darcs
18:09 Heffalump I'm a little confused: what do people think should happen? darcs revert is supposed to revert local changes to your repo.
18:11 dolio I think they're expecting that the "unrecorded change" in that case is adding the file to darcs tracking, not the creation of the file itself.
18:13 Heffalump I see
18:13 Heffalump one might also expect that darcs revert = darcs record ; darcs obliterate, though
18:14 Heffalump tricky :-)
18:14 Heffalump also, darcs revert does destroy local content in general, why are new files any different?
18:15 Heffalump if I'd already recorded the darcs add but not the subsequent content change, darcs revert would happily revert the content change leaving you with an empty file
18:17 dolio I think you can certainly argue that it's not conceptually inconsistent.
18:17 dolio Adding a new file seems like a more vulnerable point, though.
18:17 edwardk joined #darcs
18:18 Heffalump hmmm
18:19 dolio Like, "I've been hacking on something new for a few hours. Maybe I should put it in darcs."
18:20 dolio And then you do something and accidentally wipe it out.
18:20 dolio Although I'm not sure what the thought process for doing so would be.
18:21 Heffalump but the something new could have been in an existing fil
18:21 Heffalump e
18:21 Heffalump also, darcs unrevert exists
18:22 dolio I mean that something that isn't in the repository strikes me as more likely to be a significant loss if it's blown away.
18:22 dolio But I don't really know.
18:23 slack1256 joined #darcs
18:23 dolio I don't really have a strong opinion one way or the other.
18:26 dolio Also, what is the interface for reverting an add?
18:27 dolio When I revert changes, I get to see the things I'm killing. Does reverting an add let me know that I'm deleting the file?
18:29 dolio Yeah, it just says, "addfile ./Foo Shall I revert this change?"
18:31 Heffalump I should hope so - unless you used revert -a
18:32 dolio Well, I mean, for each change to a file, it's pretty clear that "I'm about to delete these lines."
18:32 dolio It might not be my first thought that "i'm going to revert this addfile" also means that it's about to delete the files.
18:36 Heffalump but before you revert the addfile, you have to revert the content addition
18:37 dolio No, you don't.
18:37 Heffalump addfile itself just means "make me an empty file"
18:37 * Heffalump tests
18:37 Heffalump ah.
18:38 Heffalump ok, that does strike me as a bug.
18:38 Heffalump oh, I see, it asks about changes in the wrong order, so reverting the addfile implies reverting the content
18:39 dolio Yeah, maybe that's the right solution.
18:39 dolio You need to revert in reverse dependency order.
18:39 dolio Not in dependency order, and have earlier reversions decide later ones.
18:54 carter joined #darcs
19:27 mornfall Heffalump: Do you think it would be feasible to have a "rebase pull" variant that suspends everything local not in remote?
19:28 mornfall Heffalump: If you are amending patches anyway, it probably doesn't hurt to touch all of them, and resolving everything in chronological order would probably help a lot with longer rebases.
19:31 mornfall Alternatively, not touching a patch upon unsuspend if it didn't change would be good too, and then you could interleave patches based on timestamps. Having "immutable" suspended patches would possibly make that more feasible.
19:36 Heffalump mornfall: I think there is an option to do that, but I'd have to check
19:37 Heffalump if there isn't, I certainly intend[ed] to have one
19:37 Heffalump that is, the "suspend everything local" thing
19:38 mornfall I don't see one.
19:38 Heffalump ok, I don't see any code that does that. I agree it should exist.
19:38 Heffalump I think it's simple because you can just skip the partitionConflictingFL step
19:39 mornfall Yeah, I thought it wouldn't be much of a problem.
19:39 Heffalump needs an option name :-)
19:39 mornfall The interleaving part is probably much trickier, not sure its effect would be worth the extra effort.
19:39 Heffalump yeah, I delierately avoided tracking "touched/not-touched" in the rebase state
19:39 Heffalump as I considered it too easy to get wrong
19:40 mornfall Ok.
19:40 mornfall Maybe it doesn't need an option name but a different prompt?
19:41 mornfall Suspend (a)ll/(c)onflicted/(n)o local patches?
19:41 mornfall Instead of suspend conflicted patches (y/n)?
19:41 mornfall (+/- wording)
19:44 mornfall Also, rebase continue might be useful, unsuspending everything up to (including) the first conflict.
19:44 Heffalump hmm. I thought I did something like that too, but --skip-conflicts seems to be the only thing there is.
19:44 javier_rooster joined #darcs
19:45 Heffalump the current offer of suspending conflicted patches is one at a time
19:45 mornfall Yeah, but that has the same out-of-order implications as suspend conflicts only.
19:45 Heffalump yeah, agreed
19:49 mornfall Ah, right. pull --suspend-all then?
19:50 Heffalump ok, so how about --one-conflict or something?
19:50 Heffalump hmm, --until-conflict
19:50 Heffalump trying to figure out how to get the sense of including it
19:52 mornfall --until-conflict probably works, you get the message about conflicted files
19:53 Heffalump there also might be an argument for it not being inclusive
19:54 mornfall Well, depends on context. But the most common rebase use-case will work better if it was inclusive.
19:54 mornfall Afterall, its only purpose is to save keystrokes.
19:54 mornfall (You can already unsuspend one patch at a time.)
19:55 mornfall And if it's non-inclusive, you need two commands per conflict, in alteration.
19:55 Heffalump yeah, but it can save an unbounded number of keystrokes
19:56 Heffalump whereas stopping just before is just a constant factor (2)
19:56 Heffalump also, unsuspending a conflict is (currently) irreversible
19:56 slack1256 could anybody confirm me this?: Rollback stops being so useful once you have a tag after the patches you want to rollback, because you will have to also rollback the tag.
19:56 mornfall Oh, is it?
19:56 mornfall slack1256: Rolling back a tag is a noop, actually.
19:56 slack1256 noop?
19:56 mornfall Heffalump: But that's only true if you have unrecorded changes right?
19:56 mornfall slack1256: Doesn't do anything.
19:57 slack1256 Mmm so the rollback just depends on it? but doesn't eliminate it, right?
19:58 mornfall slack1256: It doesn't even depend on it. Rollback doesn't eliminate anything, it's just a shortcut way of creating a completely new patch.
19:58 Heffalump mornfall: no, it's worse than that
19:58 mornfall Heffalump: What happens if I revert the changes and suspend the patch again?
19:59 Heffalump slack1256: it's a bit of unfortunate UI - because you first select patches to rollback then the things that are inside them, you have to select tags to be able to select the patches before the tag, but other than affecting what individual changes you can then choose, it doesn't actually affect the rollback at all
19:59 Heffalump mornfall: then you get the flattened out patch suspended and the conflict is gone lossily.
19:59 Heffalump I need to make sure the documentation warns about this clearly (or figure out a good fix)
20:00 mornfall Ouch.
20:00 mornfall So you only mark up the conflict in the working copy?
20:00 Heffalump the problem is that if I make the unsuspended patch an actual conflict patch in the local rpository, it's nto a conflict that really exists with any patch in history
20:00 Heffalump correct
20:02 mornfall So you can't merge the patch to be unsuspended into the unsuspended patchset like it was a pull, because it doesn't have any real context with it?
20:02 slack1256 Heffalump: Oh so that is. thank goodness I was confused because it was asking me to rollback the tag.
20:02 slack1256 Heffalump: but what you say does make sense.
20:02 slack1256 thanks mornfall Heffalump
20:04 Heffalump mornfall: I could technically, but I'm concerned about the implications of doing so.
20:04 Heffalump I could make it into a merger/conflictor.
20:04 Heffalump but I think it makes for a odd repository if I did that and the user then doesn't amend the conflict out
20:06 mornfall Would it?
20:08 mornfall Is the end result much different from what would happen if you just didn't suspend the patch in the first place?
20:08 Heffalump right now if you have a repository with a conflict in it, yuo can unpull patches and get the conflict removed
20:08 Heffalump yes, because rebase fixups can correspond to patches that have been obliterated from the repo
20:08 Heffalump and also they get coalesced
20:09 Heffalump so there's no guarantee that the fixups at ususpnd time are the inverse of something actually still in the repo
20:11 mornfall So doing a suspend/unsuspend on a conflict will get you a slightly different conflict, but if you no longer have any suspended patches and obliterate the conflicted patch, you still get a clean repo, right?
20:12 Heffalump (back in a while, dinner)
20:37 Heffalump mornfall: are you asking about the hypothetical version where unsuspend makes a conflicted patch?
20:38 mornfall Yeah.
20:38 Heffalump then suspend/unsuspend on a conflict would get you the same patch (I think)
20:38 Heffalump but if you have A;B, where B depends on A
20:39 Heffalump then if you suspend B, obliterate A, and unsuspend B, the result would be B conflicting with (effect A)^-1
20:39 lelix joined #darcs
20:39 Heffalump but with no such patch as A/effect A actually in the repo
20:40 mornfall I see. Although I'm not sure what are the implications.
20:57 lelit joined #darcs
20:58 Heffalump well, it would be problematic if we started trying to infer the conflicting patch names
21:00 mizu_no_oto joined #darcs
21:19 javier_rooster joined #darcs
21:27 javier_rooster joined #darcs
21:39 edwardk joined #darcs
21:42 gh_ joined #darcs
22:08 javier_rooster joined #darcs
22:36 owst joined #darcs
22:58 dolio joined #darcs
22:59 saep joined #darcs
22:59 edwardk joined #darcs
23:16 edwardk joined #darcs
23:19 edwardk joined #darcs
23:37 idnaria joined #darcs
23:52 alexei joined #darcs

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