seyz / baboon Goto Github PK
View Code? Open in Web Editor NEWDetect source code merge conflicts in realtime. Simply get rid of merge hells.
Home Page: http://baboon-project.org
Detect source code merge conflicts in realtime. Simply get rid of merge hells.
Home Page: http://baboon-project.org
During the initialization (or when you create a new file in the watched directory), the hidden files need to be ignore by default. The user can remove the ignore "flag" to watch the files he wants.
2012/09/28 18:10:52 INFO Bye ! (MainThread/sigint_handler:166)
Exception TypeError: "'NoneType' object is not callable" in <bound method DbfilenameShelf.__del__ of {'db/migrate/20111011195702_share_anything.rb': 1348848651.511066, 'app/assets/images/branding/asterisk_white.png': 1348848651.511066, 'spec/shared_behaviors/stream.rb': 1348848651.511066, 'app/assets/images/buttons/[email protected]': 1348848651.511066, 'features/step_definitions/uri-step.rb': 1348848651.511066, 'app/views/conversations/_conversation.haml': 1348848651.511066, 'app/models/relayable_retraction.rb': 1348848651.511066, 'app/controllers/services_controller.rb': 1348848651.511066, 'app/assets/templates/flow_tpl.jst.hbs': 1348848651.511066, 'spec/helper_methods.rb': 1348848651.511066, 'app/views/notifier/comment_on_post.markerb': 1348848651.511066, 'app/assets/images/social_media_logos/tumblr-48x48.png': 1348848651.511066, 'config/locales/diaspora/lt.yml': 1348848651.511066, 'db/migrate/20110603212633_likes_dependent_delete.rb': 1348848651.511066, 'app/assets/javascripts/app/views/post-viewer/new_comment.js': 1348848651.511066, 'config/initializers/cors.rb': 1348848651.511066, 'app/assets/images/img/glyphicons-halflings-red.png': 1348848651.511066, 'spec/lib/stream/person_spec.rb': 1348848651.511066, 'app/models/notifications/comment_on_post.rb': 1348848651.511066, 'features/conversations.feature': 1348848651.511066, 'app/presenters/post_presenter.rb': 1348848651.511066, 'app/assets/images/static-loader.png': 1348848651.511066, 'config/locales/diaspora/nb.yml': 1348848651.511066, 'app/assets/images/icons/search_grey.png': 1348848651.511066, 'lib/salmon/salmon.rb': 1348848651.511066, 'config/locales/devise/devise.fr.yml': 1348848651.511066, 'app/views/comments/index.mobile.haml': 1348848651.511066, 'app/assets/javascripts/app/views.js': 1348848651.511066, 'app/models/user/querying.rb': 1348848651.511066,
During the first stanza sent for the rsync task, the node is given according to the config entry in the configuration file without any server-side verification (if the user is a subscriber on this node). It means that if the user changes the
value of the config entry to any node, the user will write the change in the directory of the chosen project.
~/projects/internal/baboon (master *) $ python bin/baboon create techta --path /tmp
Creation in progress...
Traceback (most recent call last):
File "bin/baboon", line 7, in <module>
Main()
File "/home/raph/projects/internal/baboon/baboon/main.py", line 30, in __init__
getattr(commands, self.which)()
File "/home/raph/projects/internal/baboon/baboon/commands/commands.py", line 84, in create
with AdminTransport(logger_enabled=False) as transport:
File "/home/raph/projects/internal/baboon/baboon/transport.py", line 53, in __enter__
self.open()
File "/home/raph/projects/internal/baboon/baboon/transport.py", line 69, in open
self.process(block=block)
File "/home/raph/projects/external/SleekXMPP/sleekxmpp/basexmpp.py", line 191, in process
self.plugin[name].post_init()
File "/home/raph/projects/external/SleekXMPP/sleekxmpp/plugins/xep_0004/dataforms.py", line 50, in post_init
self.xmpp.plugin['xep_0030'].add_feature('jabber:x:data')
KeyError: 'xep_0030'
We need to deal with pending subscription.
How to notify a project owner there's an new pending subscription ?
How to retrieve the list (xep 0050 normally) ?
etc.
aaa.txt
aaa.txt
aaa.txt
is not deleted server-side.What about detection conflict when you add/remove some spaces (e.g. at the end of the line) ?
Need a trim or not ?
Consider spaces like another letters or not ?
We need to test if baboon works on Windows.
Baboon uses watchdog but it seems the windows support is not very good. Is it enough for our use cases ?
Baboon needs to handle the sigint signal for a clean close.
Use a pubsub message to warn if there's a conflict or not.
The stanza will be something like that :
<type>conflict</type>
<from>[email protected]</from>
<to>[email protected]</to>
<diff>..................</diff>
The diff can be useful later. The type can be useful to detect if it's a regular diff message (type diff ?) or a conflict message.
It causes baboon to crash.
Threading sync issue.
For example, when the ssh key is not present (without passphrase).
$ baboon start
'The project synapse-agent is not yet initialized. Please, run baboon init synapse-agent <git-url>
.'
Split stanza ?
Create a setup.json in order to install easily baboon and all its dependencies.
When a new file is created on the watch project :
Git and Hg is currently supported. It will be cool to have a Svn support too.
How to manage the first rsync ?
What do you think about that @raphdg ?
Print a log message (or something other later) when a user is connected. Same thing when the user is disconnected.
The xmpp presence can be useful for this task.
Avoid to detect a conflict when it's the same change. Verify that git/mercurial/svn/cvs/... don't detect a conflict in this case.
I create a project foo
with --nosave option.
So, my configuration file has no foo
entry. Great.
I delete my foo
project and I have this stacktrace:
Deletion in progress...
The project foo is successfuly deleted.
Traceback (most recent call last):
File "bin/baboon", line 9, in <module>
Main()
File "/home/seyz/workspace/external/baboon/baboon/main.py", line 29, in __init__
getattr(commands, self.which)()
File "/home/seyz/workspace/external/baboon/baboon/commands/commands.py", line 125, in delete
del config['projects'][project]
KeyError: 'foo'
Need to find an equivalent.
It will be cool to have some colors in the console logs.
Fixed error like that:
Conflict detected with [email protected].
> error: cannot apply binary patch to 'public/apple-touch-icon.png' without full index line
To reproduce the bug, remove a binary file.
Need to use os.path.abspath
When a file is deleted, a diff must be generated with minus on all lines in order to detect conflict.
User a creates the new file aaa.py
.
User b also creates the new file aaa.py
.
If the aaa.py
file is not staged, no conflict is detected.
It takes 10 min for 3500 files that don't even need to be synced.
Need to find the bottleneck.
I have the following configuration file:
[server]
max_stanza_size = 65535
pubsub = pubsub.baboon-project.org
streamer = streamer.baboon-project.org
server = [email protected]/baboond
[user]
passwd = secret
jid = [email protected]
[cortex-web]
scm = git
path = /home/seyz/workspace/internal/cortex-web
# Example of project definition
#[awesome_project] # The project name on the baboon server
#path = /pathto/project # The project path of your system
#scm = git # The source code manager you use for this project
#enable = 1 # You want baboon to actually watch this project
I replaced 'server' entry by 'master' for testing and:
(baboon)seyz@dogwood ~/workspace/external/baboon (master) $ python bin/baboon register marci --nosave
Password:
Confirm password:
Registration in progress...
Traceback (most recent call last):
File "bin/baboon", line 9, in <module>
Main()
File "/home/seyz/workspace/external/baboon/baboon/main.py", line 29, in __init__
getattr(commands, self.which)()
File "/home/seyz/workspace/external/baboon/baboon/commands/commands.py", line 43, in register
transport = RegisterTransport(callback=_on_action_finished)
File "/home/seyz/workspace/external/baboon/baboon/transport.py", line 426, in __init__
super(RegisterTransport, self).__init__()
File "/home/seyz/workspace/external/baboon/baboon/transport.py", line 45, in __init__
self.server_addr = config['server']['master']
KeyError: 'master'
Baboon should only watched the files that doesn't match the patterns in the .gitignore file
Baboon should only watched the files that doesn't match the patterns in the .hgignore file
I think that diff_match_patch is not adapted for the patch feature. It will be better to remove this dependency and to use the standard difflib library of python and create a difflib parser.
We need to test if Baboon works well on OSX.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.