Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

RTC/Git integration: who's done it/how well does it work?

Hi all. I've read the "Integrating other SCM Systems with Rational Team Concert 2.0" document from 2009, which gives a lot of detail but is a little lacking as to the higher-level pros and cons, and searched these forums looking for people who've actually implemented this integration but haven't found much.

Has anyone out there actually implemented the RTC/Git bridge described in the above document? How is it working for you? Do you have any advice? Are you willing to give a general overview of how your system works? With a DVCS there are lots of decisions to make (it seems to me); do you connect RTC with only the "master" git repository? All of them? Etc. Is there any existing community around this environment that I can contact?

What features of RTC does one lose by choosing the Git bridge instead of the builtin SCM? The above doc just says "it is possible to provide a similar type of integration between RTC work items and other SCM systems by using comments and the "Related Artifacts" links provided by the Work Items component. The level of integration will not be as high as with RTC SCM but it is useful none the less"; I'm wondering exactly what "not as high" means: what features are preserved, and which are not.

Finally in some of my readings I've seen discussion of a "connector", while the above doc describes a Git "bridge". Are "connector" and "bridge" different names for the same thing? If not what is the advantage of a connector over a bridge (or vice versa), and if a connector gives tighter integration then is there one available for Git and/or would it be difficult to create one?

Thanks for any guidance/pointers/guidelines anyone can provide!
Cheers!

2 votes



22 answers

Permanent link
We use the term "connector" to refer to a mechanism for integrating two
distinct repositories. The terms "bridge", "synchronizer", and
"importer" refer to different types of connectors. A bridge allows you
to create links from artifacts in one repository to artifacts in another
repository, and allows you to navigate those links. A synchronizer
takes a user-selected object in one repository, creates a clone of that
object in the other repository, and keeps the object and its clone
synchronized. An importer is like a one-way synchronizer ... taking
objects in one repository, and creating copies in the other repository.

Cheers,
Geoff

On 10/17/2011 5:53 PM, madscientist wrote:
...
Finally in some of my readings I've seen discussion of a
"connector", while the above doc describes a Git
"bridge". Are "connector" and "bridge"
different names for the same thing? If not what is the advantage of a
connector over a bridge (or vice versa), and if a connector gives
tighter integration then is there one available for Git and/or would
it be difficult to create one?

1 vote


Permanent link
Enhancing the GIT integration is being actively investigated, but there
is not yet a committed plan ... stay tuned.

Cheers,
Geoff

On 10/25/2011 11:53 AM, madscientist wrote:
gmclemmwrote:
We use the term "connector" to refer to a mechanism for
integrating two distinct repositories. The terms "bridge",
"synchronizer", and
"importer" refer to different types of connectors. A
bridge allows you to create links from artifacts in one repository to
artifacts in another repository, and allows you to navigate those
links. A synchronizer takes a user-selected object in one
repository, creates a clone of that object in the other repository,
and keeps the object and its clone synchronized. An importer is like
a one-way synchronizer ... taking objects in one repository, and
creating copies in the other repository.
Thanks Geoff; that's very helpful in understanding the docs
available.

So far I've had no responses to anyone using RTC with git, in real
life. Is this not something anyone has ended up doing, "for
real"? The whitepaper is interesting but it was published in
2009 IIRC, and uses RTC 2.0. Are there any updates/enhancements
available if one is using RTC 3.x? I was hoping to find a user
community around RTC+git but so far...

Thanks!

1 vote


Permanent link
We use the term "connector" to refer to a mechanism for integrating two distinct repositories. The terms "bridge", "synchronizer", and
"importer" refer to different types of connectors. A bridge allows you to create links from artifacts in one repository to artifacts in another repository, and allows you to navigate those links. A synchronizer takes a user-selected object in one repository, creates a clone of that object in the other repository, and keeps the object and its clone synchronized. An importer is like a one-way synchronizer ... taking objects in one repository, and creating copies in the other repository.

Thanks Geoff; that's very helpful in understanding the docs available.

So far I've had no responses to anyone using RTC with git, in real life. Is this not something anyone has ended up doing, "for real"? The whitepaper is interesting but it was published in 2009 IIRC, and uses RTC 2.0. Are there any updates/enhancements available if one is using RTC 3.x? I was hoping to find a user community around RTC+git but so far...

Thanks!

0 votes


Permanent link
 Hi Guys,

I am working on RTC 5.0 integration with GIT. My goal is to integrate RTC work item with GIT commit. Till now I have followed IBM documentation for this activity http://www-01.ibm.com/support/knowledgecenter/#!/SSCP65_5.0.0/com.ibm.team.connector.cq.doc/topics/c_integ_git.html

but no luck, when I push my changes to git repository with work item id, it doesnt create a link in RTC. Also as per document it says GIT repo should be hosted on Apache Smart HTTP server but my GIT repo is hosted on Gerrit Jetty Web server. Btw we also use Gerrit. I dont know if that makes a difference but please let me know what possible workaround can be done or has anyone worked on this integration?

Thanks
Amrinder

0 votes

Comments

you did install the hooks on the git server, right? and configure the variable fo reht rtc server url, etc.  in 5.0 the hook samples are provided. I don't think it matters what server hosts the git server..


Permanent link

Yeah my project repo is "testproject2.git". There is a hooks folder and I copied post-receive.py and pre-receive.py scripts over there. I did same for Gerrit and placed ref-update.py and ref-updated.py scripts.

In the scripts I have " Jazz repo Url, GIT repo key, Python path and hooks path " But apart from this stuff, is there anything I need to modify in those scripts, I downloaded the hook scripts from jazz.net and followed Readme.txt

0 votes

Comments

is the right python version installed on the server?  these scripts depend on the pre-compiled python classes (pyc). that also need to be in the path (I think.. just setting this up on my 5.0 server (since I hadn't done it)..

just finished jenkins/svn/git integration with hooks.
have jenkins/RTC already. so this is next.


Permanent link

Yeah Python-3.3.5. Are you talking about hookslib.pyc and rtcprocess.pyc? I havent copied these in the path.

So i copy these scripts to where I have installed python? This is the path I have on my server

/usr/share/doc/Python-3.3.5/rtcgithooks : I copied all scripts here (AssociateWorkitem.py, post-receive.py, pre-receive.py, ref-update,ref-updated and ValidatePush.py)

0 votes

Comments

and that location is in the path for the git server?
note that the hooks talk about c:/python

on my unix server thats not where python would be.
from the post-receive hook

jazzRepoUrl='https://localhost:9443/ccm'

commitUrl='$repo/commits/$sha1'


gitRepoKey=459b3e8774be4c5e9013326e3329645a
pythonPath="C:/Python33/python"
hooksPath="C:/rtcgithooks"


Permanent link

Yes the path I have mentioned is in GIT server. Hooks talk about C:/python but thats an illustration?

Please share how the path should like so I can do some search on my end?

0 votes

Comments

Ok, I was wrong.. on the 5.0 integration, the path to the git server must be HTTP based..  mine uses the git protocol, so that won't work.

the path is not an 'illustration in the 5.0 code
 $pythonPath $hooksPath/AssociateWorkitem.py $jazzRepoUrl $gitRepoKey $userId $local_ref $local_sha $remote_ref


Permanent link

You mean the Url to git server?? Mine is based on HTTPS..

So how would the installation path to python look like on linux server?

0 votes

Comments

I am talking in regards to this path:

pythonPath="C:/Python33/python"
hooksPath="C:/rtcgithooks"

Isnt this an illustration and we have to fill in the python path from the server?

got it.. illustration meant something else to me

on my ubuntu 12.04 with python3 installed it is '/usr/bin/python3'
and I put the rtc stuff in /etc/rtc-git


Permanent link

Btw.. I am also using Ubuntu 12.04.  So you think my python path is not right where I installed it (/usr/share/doc/Python-3.3.5)?

You put your rtc git stuff in /etc/rtc-git (You mean all the hook scripts and python scripts?)

0 votes

Comments
  1. it needs to be to the python3 executable

  2. yes, sorry meant /opt

    well, the hook scripts need to be installed in the
       git repo hooks folder, (once for every repo), or link to a common place from the hooks folder)  made executable, and edited for the path info.
         

    git will call post-receive after a push from a client.

I still have to get my http git access setup before I can finish the 5.0 git repo config


Permanent link

But shouldnt the hook scripts be placed in hooks folder of your git repository?? Example: git-repo-location/ .git/hooks folder.

And I am also configuring Gerrit server side hooks so they'll be in gerrit-installation-location/hooks

0 votes

Comments

yes, see my updated comment.. I unzipped the rtc provided zip into /opt/rtg-git

then made executable, then edited, then made a link from the hooks folder to these
(that way when I have multiple repos, and need to fix the script, I only change it in one place.

see the ln command while in the hooks folder

1–15 items
page 1of 1 pagesof 2 pagesof 3 pages

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,942

Question asked: Oct 17 '11, 5:30 p.m.

Question was seen: 19,119 times

Last updated: Aug 19 '14, 9:06 p.m.

Confirmation Cancel Confirm