emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] GSoC -- org-sync


From: Aurélien Aptel
Subject: [O] GSoC -- org-sync
Date: Tue, 5 Jun 2012 20:53:22 +0200

Hi all,

Since I've reached a usable point in my Google Summer of Code project
Org-sync, I'm posting to the ML to show my progress and to get some
feedback.

For those who don't know or don't remember, Org-sync is a tool to
synchronize parts of your document with external services in a generic
way. Each service is implemented is a backend of org-sync and
implements a common interface. The project focuses on online
bugtracking tools such as Github issues or Bugzilla. More background
info on worg at [1] and [2].

I've focused on Github as my first backend. Not all aspects of the
org-sync lib has been factored out and the interface is a bit blurry
(what belongs to org-sync? what belongs to the backend?). It will be
clearer once I implement a second backend.

Currently, the Github backend is usable. To try it:

1. You will need a recent copy of org-element.el, Nicolas Goaziou's
   new org-mode parser. If you don't have it, you can just download
   contrib/lisp/org-element.el [3] from the org-mode repo, visit it in
   emacs and run M-x eval-buffer.

2. Org-sync, of course. Currently there's only one file, you can just
   download it from the tag v0.1 changeset [4], visit it in emacs and
   run M-x eval-buffer.

3. Open an org-document, or a new buffer in org-mode

4. Run M-x os-import RET github.com/octocat/Hello-World RET to import
   issues from Github test repo.

5. You can delete some entries and run M-x os-sync to download them
   again.

If you want to try the local-to-remote sync you'll need your own test repo.

1. Set the variable os-github-auth. For this you can run:

M-: RET (setq os-github-auth (cons "login" "passwd")) RET

2. Run M-x os-import RET /url/to/your/repo RET

3. Modify some entries and run M-x os-sync. Currently, there's no "success"
   message so you'll have to check online to make sure it worked.

That's all for the basic tutorial. You can find more at [2].

Known issues:

- Some field can't be synched.
- Updating tags or assignee doesn't work if it doesn't exists.
- The description is imported in Markdown syntax.
- Non-ascii chars are sent properly but are not fetched properly.
- The way logins are stored is simple for now but it will be
  enhanced later on.
- I sometime get a message like this few minutes after synching:
  "gnutls.c: [0] (Emacs) fatal error: The TLS connection was
  non-properly terminated." It has to do with https, ssl and url.el
  but other than that, I have no idea.
- There is not much error checking.


1: http://orgmode.org/worg/org-contrib/gsoc2012/student-projects/org-sync/
2: 
http://orgmode.org/worg/org-contrib/gsoc2012/student-projects/org-sync/backends.html
3: 
http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-element.el;hb=HEAD
4: http://orgmode.org/w/?p=org-sync.git;a=blob_plain;f=github.el;hb=HEAD



reply via email to

[Prev in Thread] Current Thread [Next in Thread]