Open XXXJetfireXXX opened 1 year ago
In my understanding, an "instance" implies the possibility of having different content. I can e.g. make two instances of class ArrayList
, each having different elements. But "clones" actually have the same content.
Perhaps 'linked clone' would be better at the expense of a longer name for the feature.
Could we consider "mirror"? I think it fits nicely.
In my understanding, an "instance" implies the possibility of having different content. I can e.g. make two instances of class ArrayList, each having different elements. But "clones" actually have the same content.
True... Now I understand why I still had a subtle feeling that it can also be misleading. That's a fair point x)
Perhaps 'linked clone' would be better at the expense of a longer name for the feature.
Could we consider "mirror"? I think it fits nicely.
I like these! While 'linked clone' is a more elaborative variant, 'mirror' also represents the true nature of the feature pretty precisely. However, imo when you want to refer to a particular cloned note, it would be more convenient to call it 'linked clone' rather than 'note mirror' or 'mirrored note' (note reflection? :D).
'Linked clone' sounds like a good compromise between not changing the feature's name too much (less confusion for old users) while making its name less misleading in terms of what the feature does (less confusion for new users). It also goes as far as possible from the 'original/not original' concept, while keeping the word 'clones' intact.
Just for reference, this discussion happened before in https://github.com/zadam/trilium/issues/1139 but neither mirror or 'linked clone' were mentioned that time.
Notes in note tree are references
to the original data. To end user, the cloned ones are synchronized copies
.
But I'd go with clone
, as it's shorter and easy to understand for new users.
Sure, it is right that we don't actually see the data itself, we see the references that point to it within the note tree. But that level of abstraction (working with 'pointers' to data, not just notes) could only cause more confusion without understanding how data is being stored on a slightly deeper level x)
"Notes in note tree are references to the original data"
Would this make every note a 'clone'...
It just means that what we see are pointers to note data, not the notes themselves. :) There might be one 'pointer' to a note, or there might be multiple of these as well, all representing the same note in the tree.
The closest analogy I can give are hard links, like mentioned above.
"Notes in note tree are references to the original data"
Would this make every note a 'clone'...
Well, technically, this is right. A note in the note tree is 1 clone of the data. If there is more than 1 clone, there will be a html class called "multiple-parents" apply to the note in the tree, which will show a "*" after the note. https://github.com/zadam/trilium/blob/dc0a0dcf094f904bff4da3abc18f405470b38b37/src/public/app/widgets/note_tree.js#L771C17-L771C27
I think linked clone
just more misleading, for it means there is a origin note and a link point to it.
mirror
is better, but I like use refer
for clone is doing reference
I like to think of every node in the tree as a pointer, so a clone note is just another pointer to the same note! But that's not very accessible terminology for less technical users. I think of all the suggestions so far, Mirror is perhaps the best option in terms of accuracy and accessibility to users.
Other terms I would throw out there would be peer
(or companion
) notes, joint
(or joined
) notes, reciprocal
notes, or if we want to stick to the family-style naming like child, parent, sibling, etc, we could call them cousins 😄
I completely agree with the use of "mirror". Clone works for me, but mirror seems more "correct". A true clone originates from the copied item, but then can deviate from the base (in biology, that is), so mirror feels right.
view could also be used, as it indicates a view into the original, but view has been used to describe a subset of a main repository, so that isn't quote right.
Thanks for getting me thinking on this!
[UPDATE]: I also am liking the concept of a link or shortcut. A common understanding of "shortcut" is on an OS desktop, it just points to something,.
Mirror is still my top choice, but shortcut could also work.
Hmm, "mirror" sounds quite good indeed.
How about "shadow".
I came up with "mirror"/"mirrored note" independently as part of #3087 (thanks @meichthys for the pointer),
I thought of "Shortcut" and "Link" as well, but the common acceptance for those two is that they derive from an "original" that is "truer" (as in, removing the "source" breaks the "reference"), whereas "mirrors" or "clones" are supposedly equivalent and impossible to tell apart, which I think is overall a more accurate characterisation of how trilium is handling this.
Hence my vote goes to "mirror"
Describe feature
Like it's said in the wiki,
Indeed, the name 'clones' can be somewhat misleading as it implies that there must be an 'original'. But there's not - note clones are more like hardlinks in Windows. Multiple instances of the same note that can appear in several places inside the note tree, but are all essentially the same note. And I just thought: what if we call them
note instances
instead?Additional Information
In general, each time a program runs, it is an instance of that program. In OOP languages, when we create an object of a class, it is an instantiation of that class. In similar way, as far as I can tell, a physical copy of a file is never called an instance, but a hardlink can.
I'm not sure if such naming would make things less or more complicated though, it's just a random idea that I got. Let me know what you think about it.
Also if you have any better ideas for naming note clones (or if you think that 'clones' is fine), please do share your ideas and thoughts as well :)