change log file, navigate to the changes

Uwe Brauer oub
Sat Nov 18 11:26:57 EST 2006


>>>>> "Mats" == Mats Lidell <matsl at xemacs.org> writes:

   Stephen> Have you looked at hyperbole?

   Mats> Unfortunately there is no such thing in hyperbole, yet.

   Mats> Triggered by this request I did some experiment, added an
   Mats> implicit change-log-mode button and tried to think about what
   Mats> could be done.

   Mats> * What comes first in mind is trying to come up with an implicit
   Mats>   button.


   Mats>   It all seems to get a bit complicated without really solving the
   Mats>   requested functionality.

   Mats> * Creating an explicit button in the ChangeLog is not desirable I
   Mats>   think!? (Excplicit means that an hyperbole button "<....>"
   Mats>   is inserted. The link will be persistent but the ChangeLog
   Mats>   will contain hyperbole buttons ...)

Well I would not mind, if it where easy to create and to use.
But of course as you said, I would like that when I run the modified 
add-change-log-entry, then the position of the change is stored and
the link is set automatically.
   Mats> * What I think really is wanted is that a cross reference is created
   Mats>   from the ChangeLog to from where add-change-log-entry was
   Mats>   invoked. This should all take place behind the scene so
   Mats>   that when clicking on that line in the ChangeLog you will
   Mats>   be transfered back to where it all began.
  
   Mats>   From a quick look at bm.el it doesn't seem to implement
   Mats>   this but rather create a visible bookmark to which you can
   Mats>   jump from the bookmarks associated with that file.

Right

   Mats>   Maybe that idea could be taken further and any line in a
   Mats>   buffer could be the starting point for a cross reference to
   Mats>   a position in another file. Then a modified
   Mats>   add-change-log-entry could update that cross
   Mats>   reference. However this transfers the problem into how to
   Mats>   update the cross reference when the originating file is
   Mats>   changed which doesn't seem to be trivial.

Right, this a problem in bm and in bookmark.el. However bookmark has a
clever idea (which was then implemented by bm as well): not only store
the char position, where the change occurred, but store also some
strings before and after the change (this is called front-context-string and
rear-context-string) in order take into account a possible change of
the file later.

Example ^ indicates where the change occurs

,----
| This is a line
| here I will change tis
|                     ^
| another line.
`----

Then the cursor position 

    -  ^ is stored together with the strings

    -  "change" and 

    -  "another" 


Then when I make changes of the form 


,----
| a new line
| This is a line
| here I will change tis
|                     ^
| another line.
`----

Then everything is fine and the ^ can be found.

The question reminds were to store all that information. I see three
possibilities:

    -  In the change log file (but may be in the non visible
       part). However that might be complicated

    -  In  a global file in the home directory 

    -  In a file associated   which every changelog file


Uwe Brauer



More information about the XEmacs-Beta mailing list