GithubHelp home page GithubHelp logo

pysynergy's Introduction

PySynergy

ccm -> git converter

HOWTO

Create a configuration.conf file with the info needed for your setup, look in the configuration.conf.sample.

Run get_synergy_history.py and the converter will start quering the Synergy database for project info. Data will be stored in two places: ccm_cache_path from the config will store all Synergy objects as so they can easily and fast be be loaded again. The release and task structure and how everything is linked together is stored in the PySynergy folder.

To do the actual conversion run do_convert_history.py and pipe this to git fast-import or a file for later import through git fast-import

Done!

For the conversion of synergy data to git data you'll need to have pygraph installed.

NOTE

If you need assistance or help in migrating from Synergy to git, don't hesitate to contact me at [email protected]

I'm currently not having access to any Synergy servers, so development on PySynergy is slow, if not stopped.

pysynergy's People

Contributors

dvaske avatar emanuelez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pysynergy's Issues

Versions

What version of Python and Rational Synergy was this code designed to work with?

I am running with Python 2.7.10 (3.5 did not work at all) and Synergy 7.2.0.6 and CCM.exe crashes in what appears to be every time it is called.

RuntimeError in convert_history

I get the following exception when running do_history_conversion.py:

  File "./do_history_conversion.py", line 37, in <module>
    cgraphs = cg.create_graphs_from_releases(history)
  File "/home/ccm_root/PySynergy/ccm_history_to_graphs.py", line 53, in create_graphs_from_releases
    object_graph, task_graph, release_graph, commit_graph = create_graphs(releases[release])
  File "/home/ccm_root/PySynergy/ccm_history_to_graphs.py", line 95, in create_graphs
    commit_graph = ch.convert_history(object_graph, task_graph, release_graph, objects)
  File "/home/ccm_root/PySynergy/convert_history.py", line 119, in convert_history
    log.info("Looking for cycles in the File History graph")
  File "/usr/lib64/python2.6/logging/__init__.py", line 1437, in info
    root.info(*((msg,)+args), **kwargs)
  File "/usr/lib64/python2.6/logging/__init__.py", line 1021, in info
    self._log(INFO, msg, args, **kwargs)
  File "/usr/lib64/python2.6/logging/__init__.py", line 1129, in _log
    self.handle(record)
  File "/usr/lib64/python2.6/logging/__init__.py", line 1139, in handle
    self.callHandlers(record)
  File "/usr/lib64/python2.6/logging/__init__.py", line 1176, in callHandlers
    hdlr.handle(record)
  File "/usr/lib64/python2.6/logging/__init__.py", line 664, in handle
    self.release()
  File "/usr/lib64/python2.6/logging/__init__.py", line 618, in release
    self.lock.release()
  File "/usr/lib64/python2.6/threading.py", line 136, in release
    raise RuntimeError("cannot release un-aquired lock")
RuntimeError: cannot release un-aquired lock

It seems to be a problem with Python 2.6, which I'm running an a SLES11 SP1.

Hello @stoerr: I'm also using PySynergy with Synergy 7.1. Which OS and Python version are you using?

Thanks and best wishes
Tobi

RunTime Error

Hello,

I am in need of assistance. I am using PYSynergy to migrate my Synergy project, used in Rational Synergy 7.2, to Git. I am currently using Python version 2.6.6 running on Red Hat Enterprise Linux 6.2 (Santiago). After running 'get_synergy_history.py', I get the following Exception and stack trace:

Offline mode, just using cache
Offline mode, just using cache
Offline mode, just using cache
Offline mode, just using cache
Offline mode, just using cache
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib64/python2.6/threading.py", line 532, in *bootstrap_inner
self.run()
File "/usr/lib64/python2.6/threading.py", line 484, in run
self.__target(_self.__args, _self.__kwargs)
File "/usr/lib64/python2.6/multiprocessing/pool.py", line 281, in _handle_results
task = get()
TypeError: ('__init
() takes exactly 2 arguments (1 given)', <class 'SynergySession.SynergyException'>, ())

Exception SynergySession.SynergyException: SynergyException() in <bound method SynergySession.del of <SynergySession.SynergySession object at 0x15375d0>> ignored
Exception SynergySession.SynergyException: SynergyException() in <bound method SynergySession.del of <SynergySession.SynergySession object at 0x15375d0>> ignored
Exception SynergySession.SynergyException: SynergyException() in <bound method SynergySession.del of <SynergySession.SynergySession object at 0x15375d0>> ignored
Exception SynergySession.SynergyException: SynergyException() in <bound method SynergySession.del of <SynergySession.SynergySession object at 0x15375d0>> ignored
Exception SynergySession.SynergyException: SynergyException() in <bound method SynergySession.del of <SynergySession.SynergySession object at 0x15375d0>> ignored
Exception AssertionError: AssertionError() in <Finalize object, dead> ignored
Traceback (most recent call last):
File "get_synergy_history.py", line 93, in
main()
File "get_synergy_history.py", line 81, in main
history = ccm_hist.get_project_history(config['master'], config['base_project'])
File "/app/CMSynergy/ccm7.2/ccm_root/PySynergy-master/CCMHistory.py", line 58, in get_project_history
release_chain = deque(get_project_chain(latest_project, base_project, self.ccm))
File "/app/CMSynergy/ccm7.2/ccm_root/PySynergy-master/CCMHistory.py", line 538, in get_project_chain
baseline = ccm_cache.get_object(head_project, ccm)
File "/app/CMSynergy/ccm7.2/ccm_root/PySynergy-master/ccm_cache.py", line 86, in get_object
raise ObjectCacheException("Couldn't extract %s from Synergy" % obj)
ccm_cache.ObjectCacheException: "Couldn't extract msw-msw_v9.0.0:project:a#1 from Synergy"

If anyone is available to assist me in troubleshooting this issue, I would most certainly appreciate it.

Exception : attribute does not exist.

Hello,

I am porting the project to Win/Python3.10.
I am amost there with the fetch. However there is an error with this ccm attr command :

lines = ccm.attr(t.get_object_name()).option("-s").option("file_acs").run().splitlines()

I don't have this attribute "file_acs" on the type. what is it ? How do you use it ? Is it needed for next stage ?
I don't find any reference to that.
Is there a possible default value for that ?

EDIT : this attribute only exists for the _dir attype. I don't manage to show it synergy srv does not answer to request.

StopIteration in spaghettify_digraph

I get the following exception when running do_history_conversion.py for two different Synergy repositories:

Traceback (most recent call last):
  File "./do_history_conversion.py", line 39, in <module>
    cfe.ccm_fast_export(history, cgraphs)
  File "/home/tmdweb2git/ccm_git_etelco/ccm_fast_export.py", line 121, in ccm_fast_export
    commit_graph = ch.spaghettify_digraph(commit_graph, previous_release, release)
  File "/home/tmdweb2git/ccm_git_etelco/convert_history.py", line 416, in spaghettify_digraph
    current_tails = next((t for t, c in tc.iteritems() if c == component))
StopIteration

Obviously it is difficult to post something to reproduce this bug. But perhaps someone can guess the problem, or had the same trouble?

I'm using the latest version of PySynergy with Synergy 7.1 and python 2.6.6. (By the way: for version >= 7.0, one needs to use the classic client, not the web client - took me quite a while to figure out since many synergy exceptions are caught and just logged away somewhere.)

Thanks so much,

Hans-Peter Störr

Documentation

Is there a website or WiKi somewhere with a howto or some sort of getting started guide. I'm familiar with Python, but honestly, both Python and CMSynergy are new to me for the most part, so I'm having trouble wrapping my head around this. I'd like to have bidirectional communication (updates going both ways) which I think this will do, but am not sure exactly how. Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.