Commit Graph

207 Commits

Author SHA1 Message Date
Carsten Dominik ac83bc01d7 Better implementation of unique entry IDs.
Unique identifiers for entries can now be used more efficiently.
Internally, a hash array has replaced the alist used so far to
keep track of the files in which an ID is defined.  This makes it
quite fast to find an entry by ID.

There is now a new link type which looks like this:

id:GLOBALLY-UNIQUE-IDENTIFIER

This link points to a specific entry.  When you move the entry to
a different file, for example if you move it to an archive
file, this link will continue to work.

The file /org-id.el/ contains an API that can be used to write
code using these identifiers, including creating IDs and finding
them wherever they are.

Org has its own method to create unique identifiers, but if the
system has /uuidgen/ command installed (Mac's and Linux systems
generally do), it will be used by default.  You an also select
the method by hand, using the variable =org-id-method=.

If the ID system ever gets confused about where a certain ID is,
it initiates a global scan of all agenda files with associated
archives, all files previously known containing any IDs, and all
currently visited Org-mode files to rebuild the hash.  You can
also initiate this by hand: =M-x org-id-update-id-locations=.
Running this command will also dump into the =*Messages*= buffer
information about any duplicate IDs.  These should not exist, but
if you /copy/ an entry with its properties, duplicate IDs will
inevitably be produced.  This is unavoidable in a plain text
system that allows you to edit the text in arbitrary ways, and a
portion of care on your side is needed to keep this system clean.

The hash is stored in the file =~/.emacs.d/.org-id-locations=.
This is also a change from previous versions where the file was
=~/.org=id-locations=.  Therefore, you can remove this old file
if you have it.  I am not sure what will happen if the =.emacs.d=
directory does not exists in your setup, but in modern Emacsen, I
believe it should exist.  If you do not want to use IDs across
files, you can avoid the overhead with tracking IDs by
customizing the variable =org-id-track-globally=.  IDs can then
still be used for links inside a single file.

IDs will also be used when you create a new link to an Org-mode
buffer.  If you use =org-store-link= (normally at =C-c l=) inside
en entry in an Org-mode buffer, and ID property will be created
if it does not exist, and the stored link will be an =id:= link.
If you prefer the much less secure linking to headline text, you
can configure the variable =org-link-to-org-use-id=.  The default
setting for this variable is =create-if-interactive=, meaning
that an ID will be created when you store a link interactively,
but not if you happen to be in an Org-mode file while you create
a remember note (which usually has a link to the place where you
were when starting remember).
2008-12-10 23:32:37 +01:00
Carsten Dominik b2ad719f51 Implement a new link type "id:" to link to entry ids. 2008-12-10 14:31:18 +01:00
Carsten Dominik 7b6ad9054e Release 6.14. 2008-12-06 07:34:30 +01:00
Carsten Dominik 0e157c59ba 6.14pre01
Moving toward a release.
2008-12-05 14:55:58 +01:00
Carsten Dominik db782da26b Remove unnecessary whitespace. 2008-12-04 15:33:43 +01:00
Carsten Dominik 825fdfa95e Change version number to 6.13trans. 2008-11-25 20:42:53 +01:00
Carsten Dominik eb48aaa7c1 Release 6.13a. 2008-11-24 12:22:56 +01:00
Carsten Dominik 06edd56942 Release 6.13 2008-11-23 08:10:04 +01:00
Carsten Dominik 5810f0a8c9 6.13pre05
Getting close.....
2008-11-22 10:25:55 +01:00
Carsten Dominik db5c609be9 6.13pre04 2008-11-21 13:35:45 +01:00
Carsten Dominik 7d45c9f4bf 6.13p03 2008-11-21 07:18:35 +01:00
Carsten Dominik 81e3b95843 6.13pre02. 2008-11-20 15:02:53 +01:00
Carsten Dominik 926bab3a67 Pushing version number to 6.13pre01. 2008-11-20 08:28:02 +01:00
Carsten Dominik 9f1e6fa952 Avoid error when ID is created in buffer without a file.
When ID's are created, Org tries to remember in which file the id is
located.  However, if an ID is created in a remember buffer, no file
is known.  This patch makes sure that this condition does not lead to
an error.
2008-11-18 08:59:39 +01:00
Carsten Dominik 24b32f199b Switch version number to 6.12trans 2008-11-17 07:58:11 +01:00
Carsten Dominik 3b5007cd2b Release 6.12b. 2008-11-12 23:58:49 +01:00
Carsten Dominik b55ec41bc4 Release 6.12a
Because I forgot to push before I pressed the release button.....
2008-11-11 11:21:36 +01:00
Carsten Dominik ed81800ccf Release 6.12 2008-11-11 11:03:17 +01:00
Carsten Dominik 1ffa6b76f5 Release 6.11c. 2008-11-09 08:20:00 +01:00
Carsten Dominik eb4f62ae34 Release 6.11a. 2008-11-08 22:29:54 +01:00
Carsten Dominik c708279809 Release 6.11 2008-11-08 16:43:48 +01:00
Carsten Dominik 2c0291287a Push version number to 6.11pre01.
We are moving toward the next release, please test!
2008-11-06 09:14:14 +01:00
Carsten Dominik a1d457133e Protect the attachment directory from getting a final newline.
This is a first attempt to fix a strange bug reported by Bernt Hansen,
where two attachment directories are created, one of them with a final
newline.
2008-11-05 23:43:04 +01:00
Carsten Dominik 523cf1fe31 Release 6.10c. 2008-10-25 12:56:42 +02:00
Carsten Dominik 3794f574e2 Release 6.10b. 2008-10-25 12:54:49 +02:00
Carsten Dominik 88d4405e86 Release 6.10a. 2008-10-24 23:16:42 +02:00
Carsten Dominik 794839f1da Release 6.10. 2008-10-23 09:19:43 +02:00
Carsten Dominik b7db897e6d Moving toward the 6.10 release. 2008-10-22 09:57:42 +02:00
Carsten Dominik 666d64ba82 Include changes from downstream Emacs. 2008-10-19 20:55:36 +02:00
Carsten Dominik 4574d894ce Release 6.09a. 2008-10-12 07:36:18 +02:00
Carsten Dominik 5ebc1a7982 Release 6.09. 2008-10-09 13:18:25 +02:00
Carsten Dominik 57e912c275 Push version number to 6.09pre01. 2008-10-07 15:45:58 +02:00
Carsten Dominik 4c55b885d5 Documentation fixes. 2008-10-05 12:57:01 +02:00
Carsten Dominik e195a3ee4b Release 6.08a. 2008-10-05 08:31:54 +02:00
Carsten Dominik c0292f955e Release 6.08. 2008-10-05 08:27:53 +02:00
Carsten Dominik 37fe05df9c Remove left-over debugging code. 2008-10-05 07:34:01 +02:00
Carsten Dominik d043e31182 Integrate John Wiegley's org-attach.el. 2008-10-01 09:25:18 +02:00
Carsten Dominik feab6c1348 Change version number to 6.08-pre01 2008-09-21 08:34:23 +02:00
Carsten Dominik a8b3081610 Release 6.07b. 2008-09-21 08:26:30 +02:00
Carsten Dominik b777e88fd6 Release 6.07a. 2008-09-19 16:19:32 +02:00
Carsten Dominik 194faab2b6 Bumping up the version number to 6.07. 2008-09-19 08:25:13 +02:00
Carsten Dominik 120cf0c101 Implement uuidgen as a method for id creation. 2008-09-11 16:56:37 +02:00
Carsten Dominik 2c26217b88 Release 6.06b. 2008-07-25 14:58:41 -07:00
Carsten Dominik 177e154e6c Release 6.06a. 2008-07-24 06:42:03 -07:00
Carsten Dominik 14ffcc8b9a Release 6.06. 2008-07-24 06:26:02 -07:00
Carsten Dominik b5ed7fca04 Version number bumped to 6.06pre01. 2008-07-02 13:34:26 -07:00
Carsten Dominik 0d6b79dea0 Include changes from downstream Emacs. 2008-06-20 14:11:50 +02:00
Carsten Dominik 21499409c3 Release 6.05b. 2008-06-20 00:21:15 +02:00
Carsten Dominik 2a8f099e7e Release 6.05a. 2008-06-17 17:06:16 +02:00
Carsten Dominik e1c22570b7 Version number 6.05, this will be released soon. 2008-06-16 17:51:04 +02:00
Carsten Dominik e8202bf861 Version number 6.05pre01, with a detailed list of changes.
Yes, the 6.05 release is just around the corner.
2008-06-15 09:44:21 +02:00
Carsten Dominik c9ea8bc470 Release 6.04c. 2008-05-27 08:09:31 +02:00
Carsten Dominik 174cc21d08 Bug fix for removal of comments during export. 2008-05-25 16:15:25 +02:00
Carsten Dominik 3b2b3556b7 Use C-c ' to exit source code editing. 2008-05-25 14:54:53 +02:00
Carsten Dominik 0950127491 Release 6.04. 2008-05-25 09:08:46 +02:00
Carsten Dominik 9bd2896c94 Version number to 6.04pre01
We are preparing for another release.....
2008-05-24 22:35:23 +02:00
Carsten Dominik 110b336275 Moved org-id.el to the core. Can now force UIDs in iCalendar export. 2008-05-15 10:28:38 +02:00