archimatetool / archi-modelrepository-plugin

coArchi - a plug-in to share and collaborate on Archi models.
153 stars 52 forks source link

Cannot Publish the changes to own GIT Server #77

Closed abrahamangasisiahaan closed 5 years ago

abrahamangasisiahaan commented 5 years ago

Hi ,

I would like to do collaboration among architect in the company, and seems I already try to import, commit and publish, i can do import and commit but when i do publish the status still status there are unpublish commits. the only thing i can do to resolve this by git add and git commit in git bash so not from Archimate.

A. should i need GIT LAB for using this publish feature? B. is there any workaround for this?

sorry for bad english :(

Phillipus commented 5 years ago

Can you see what is being committed when you do a manual commit. There can sometimes be an issue with line endings.

abrahamangasisiahaan commented 5 years ago

@Phillipus when I do commit in archimate,I can see in toggle history that I commit in local only then if I publish the commit using git bash. I can see the commit hints change from local to local/remote which mean the changes already in git server

manual commit you mean is commit using git bash? not from archimate? if that what you mean. i think i am unable to see in toggle history archimate

thanks alot

Phillipus commented 5 years ago

Are you saying that "Publish" in Archi does not push to the remote server, but git bash does push?

What type of server are you using? Is it a HTTPS one? When you choose "Publish" in Archi are there any error messages?

abrahamangasisiahaan commented 5 years ago

no error. iam using http not https..

Phillipus commented 5 years ago

Please provide the exact steps to reproduce the problem and all other details to help solve this.

abrahamangasisiahaan commented 5 years ago

Ok. i try the following steps. i already created repo in git server and i already have archimate there

a. get the preference and open collaboration then fill local repository folder b. fill username and email c. click apply and close d. click import remote model to workspace in collab tab. e. pop up windows appear. then fill url which is git server f. fill username and password g. tick store password h. click ok and apply i. then i can see model in collaboration workspace j. open model then i can see in navigation k. do some changes in model l. click commit the changes m. pop up appear and input comment n. after commit i should publish to git server? l. i try publish. but the commit still not publish. the indicator on bottom show me there is unpublished commit. no error during the publish. but i can do refresh. to change from unpublished commit to up to date by do push manual using git bash

Phillipus commented 5 years ago

after commit i should publish to git server?

Yes.

i try publish. but the commit still not publish.

What is shown in the "Change History" tab? Does it show the "local/remote" tooltip and the icons on the same commit? At this point what does git bash say about the commit?

abrahamangasisiahaan commented 5 years ago

its only show local not local/remote. when i open git bash and try git status. my local repo ahead one commit. then i try to push from git bash. after push success i open again archimate then the change history change to local/remote and the status change to up to date

Phillipus commented 5 years ago

Which version of the collaboration plugin are you using? Is it the one from the archimatetool.com website?

Phillipus commented 5 years ago

Also, look at the Error Log in Archi. The Error Log can be accessed in Archi by selecting the “About Archi” menu item. In the dialog box press the “Installation Details” button, then select the “Configuration” tab and press the “View Error Log” button.

abrahamangasisiahaan commented 5 years ago

!ENTRY org.eclipse.osgi 4 0 2018-12-06 16:30:11.101 !MESSAGE The -clean (osgi.clean) option was not successful. Unable to clean the storage area: C:\Users\abraham.siahaan\AppData\Roaming\Archi4.config\org.eclipse.osgi !SESSION 2018-12-17 18:29:05.619 ----------------------------------------------- eclipse.buildId=unknown java.version=1.8.0_144 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US

!ENTRY org.eclipse.osgi 4 0 2018-12-17 18:29:07.954 !MESSAGE The -clean (osgi.clean) option was not successful. Unable to clean the storage area: C:\Users\abraham.siahaan\AppData\Roaming\Archi4.config\org.eclipse.osgi !SESSION 2018-12-20 11:39:27.983 ----------------------------------------------- eclipse.buildId=unknown java.version=1.8.0_144 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Command-line arguments: -os win32 -ws win32 -arch x86_64 -clean

!ENTRY org.eclipse.core.jobs 4 2 2018-12-20 11:59:12.506 !MESSAGE An internal error occurred during: "Fetch Job". !STACK 0 org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of fetch command at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:254) at org.archicontribs.modelrepository.grafico.ArchiRepository.fetchFromRemote(ArchiRepository.java:223) at org.archicontribs.modelrepository.views.repositories.ModelRepositoryTreeViewer$3.run(ModelRepositoryTreeViewer.java:128) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56) Caused by: org.eclipse.jgit.errors.NotSupportedException: URI not supported: http:///abraham.siahaan:xxxxxx!id-vx143.prod.xxxxxx.id/git/Arch_repo at org.eclipse.jgit.transport.Transport.open(Transport.java:578) at org.eclipse.jgit.transport.Transport.open(Transport.java:446) at org.eclipse.jgit.transport.Transport.open(Transport.java:325) at org.eclipse.jgit.transport.Transport.open(Transport.java:294) at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:228) ... 3 more !SESSION 2018-12-20 12:26:56.420 ----------------------------------------------- eclipse.buildId=unknown java.version=1.8.0_144 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US

!ENTRY org.eclipse.osgi 4 0 2018-12-20 12:26:58.235 !MESSAGE The -clean (osgi.clean) option was not successful. Unable to clean the storage area: C:\Users\abraham.siahaan\AppData\Roaming\Archi4.config\org.eclipse.osgi

abrahamangasisiahaan commented 5 years ago

iam using the latest plugin, and seems there is error URI not supported: http:///abraham.siahaan:xxxxxx!id-vx143.prod.xxxxxx.id/git/Arch_repo

-clean (osgi.clean) option was not successful. Unable to clean the storage area:

Phillipus commented 5 years ago

Three things seem strange:

  1. The path C:\Users\abraham.siahaan\AppData\Roaming\Archi4.config should be C:\Users\abraham.siahaan\AppData\Roaming\Archi4\config (backslash not a dot)
  2. The URI http:///abraham.siahaan:xxxxxx!id-vx143.prod.xxxxxx.id/git/Arch_repo
  3. The error in the log occurs on fetch.

Could you try re-installing a fresh version of Archi and the plugin, or try on a different machine.

abrahamangasisiahaan commented 5 years ago

i reinstall and reset to default and install plugin i see this error

!ENTRY com.archimatetool.csv 4 0 2018-12-22 03:39:15.191 !MESSAGE FrameworkEvent ERROR !STACK 0 java.io.IOException: Exception in opening zip file: C:\Users\abraham.siahaan\AppData\Roaming\Archi4.config\org.eclipse.osgi\8\0.cp\lib\commons-io-2.5.jar at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:321) at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.basicOpen(ZipBundleFile.java:93) at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getZipFile(ZipBundleFile.java:106) at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.checkedOpen(ZipBundleFile.java:65) at org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getEntry(ZipBundleFile.java:240) at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:560) at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538) at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525) at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:446) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184) at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) at com.archimatetool.editor.actions.ArchiActionBarAdvisor.addExportModelExtensionMenuItems(ArchiActionBarAdvisor.java:596) at com.archimatetool.editor.actions.ArchiActionBarAdvisor.createFileMenu(ArchiActionBarAdvisor.java:349) at com.archimatetool.editor.actions.ArchiActionBarAdvisor.fillMenuBar(ArchiActionBarAdvisor.java:286) at org.eclipse.ui.application.ActionBarAdvisor.fillActionBars(ActionBarAdvisor.java:152) at org.eclipse.ui.internal.WorkbenchWindow.fillActionBars(WorkbenchWindow.java:2592) at org.eclipse.ui.internal.WorkbenchWindow.setup(WorkbenchWindow.java:673) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990) at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124) at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:91) at org.eclipse.e4.core.contexts.ContextInjectionFactory.inject(ContextInjectionFactory.java:73) at org.eclipse.ui.internal.Workbench.createWorkbenchWindow(Workbench.java:1494) at org.eclipse.ui.internal.Workbench.getActiveWorkbenchWindow(Workbench.java:1468) at org.eclipse.ui.internal.services.WorkbenchSourceProvider.updateActiveShell(WorkbenchSourceProvider.java:907) at org.eclipse.ui.internal.services.WorkbenchSourceProvider.getCurrentState(WorkbenchSourceProvider.java:115) at org.eclipse.ui.internal.services.WorkbenchSourceProvider.lambda$2(WorkbenchSourceProvider.java:668) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1271) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1078) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088) at org.eclipse.swt.widgets.Decorations.WM_ACTIVATE(Decorations.java:1698) at org.eclipse.swt.widgets.Shell.WM_ACTIVATE(Shell.java:2277) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4840) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1657) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178) at org.eclipse.swt.internal.win32.OS.BringWindowToTop(Native Method) at org.eclipse.swt.widgets.Decorations.bringToTop(Decorations.java:232) at org.eclipse.swt.widgets.Shell.open(Shell.java:1270) at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.postProcess(WBWRenderer.java:784) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:679) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1076) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at com.archimatetool.editor.Application.start(Application.java:82) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1499) Caused by: java.io.FileNotFoundException: C:\Users\abraham.siahaan\AppData\Roaming\Archi4.config\org.eclipse.osgi\8\0.cp\lib\commons-io-2.5.jar (The system cannot find the path specified) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(Unknown Source) at java.util.zip.ZipFile.(Unknown Source) at java.util.zip.ZipFile.(Unknown Source) at org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:304) ... 85 more !SESSION 2018-12-22 03:45:09.000 ----------------------------------------------- eclipse.buildId=unknown java.version=1.8.0_181 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US

!ENTRY org.eclipse.osgi 4 0 2018-12-22 03:45:10.763 !MESSAGE The -clean (osgi.clean) option was not successful. Unable to clean the storage area: C:\Users\abraham.siahaan\AppData\Roaming\Archi4.config\org.eclipse.osgi

abrahamangasisiahaan commented 5 years ago

the location should be C:\Users\abraham.siahaan\AppData\Roaming\Archi4\config\org.eclipse.osgi

but when i enter \ . config the slash removed from comment

Phillipus commented 5 years ago

It might be a problem with your machine and its permissions to that folder. You could try to delete the folder "C:\Users\abraham.siahaan\AppData\Roaming\Archi4" and restart.

abrahamangasisiahaan commented 5 years ago

after i done reinstal and delete the folder you mentioned, no error log, because the button is disable to view the error log so i think no error produced but still have the same issue, i click publish then showing unpublished commit and the toggle history still local not local/remote

its solved by push git manual using gitbash the url http://xx-vx143.prod.xxxx.xx/git/Arch_repo

abrahamangasisiahaan commented 5 years ago

I test the url is fine. A. do we have requirement of git server what we need to use

jbsarrodie commented 5 years ago

Hi, jumping on this issue....

A. do we have requirement of git server what we need to use

No, the only contraint is to use HTTP or HTTPS. Could you tell us which one you are using?

Re the repo URL: I see two issues

  1. To my knowledge all GIT url must end with .git so it seems you are using the url of the web based interface of your code management system instead of the url of the repository itself. When you first imported your model in Archi; was it empty or already containing something ?
  2. In the first log, it seems this url contains your credentials. This should not be the case. Some code management systems (bitbucket for example) automatically add them. In this case you have to remove them and keep only the url without credentials.
abrahamangasisiahaan commented 5 years ago

Hi Jb using HTTP, please see below my response

  1. it's empty folder when i run import at first time, please see image below, so the structure of folder is first git9, then after i do the import. the folder arch_repo which is my repository is there inside git9 folder, the picture below is file inside arch_repo, fyi i put D:\git9 in preference collaboration archimate image

so do you mean I need to change the URL? if yes why I can import and refresh the model with this url

  1. Yes, I remove the credential and actually I don't get any error log again

image

even without error log, i cannot publish it, please kindly help

jbsarrodie commented 5 years ago

Hi,

It seems there are several misunderstanding...

In your screenshot I can see a file name ID_ARCH.archimate which can't happen through the plugin. It simply seems that you haven't followed the normal way to import a model using the plugin. Please delete your repository and then create a new one and the follow this doc

If you still have issues; please provide a detailed description of the steps you followed and screenshots of your web based git hosting system.

abrahamangasisiahaan commented 5 years ago

Hi Jb I am still don't understand this part on doc

In the dialog that will appear, enter the URL of the newly created Git repository and your credentials on the Git server of your choice. Don't confuse the URL of the web page with the URL of the Git repository (which usually ends with .git)!

can you give me the example of your repository URL? URL that I use and its work for import and refresh is this one http://xx-vx143.prod.xxxx.xx/git/Arch_repo

I will try to delete all item in Arch_repo and test it before creating a new one

abrahamangasisiahaan commented 5 years ago

Hi JB, Happy New Year! I follow the step by step in doc, please see below a. I create new repository git, and add .git example , repo1.git b. Open or create new model/existing model , ( open the existing file .archimate ) c. Open preferences and go to collaboration tab then change the local repository folder to new one d. fill name and email in collaboration tab e. click apply and close f. click add local model to workspace g. i fill url of git repository example ( http://xxx.xxx.id/git/repo1.git ) and also username and password h. until this step i dont get any error in archimate,

after this step, my model should be in remote git server right? but when i try to import from remote to local, i do following steps a. create new local repo folder b. change preference in archimate to this new local repo folder c. go to collaboraction and click import remote model to workspace d. fill url and username, password e. what i see is in collaboration workspace has (new model ), then when i open model its not completed model what i have before image

the structure of my url repository is http://xx-xx333.xxx.xxx.xx/git/repo1.git

iam getting confuse of this collaboration, what i know a. after i add local model to workspace it means i can do publish, refresh and the model should be in remote git server, but currently not there b. i run import remote model, what i got is not complete model its empty, the structure there but no object from the local one i have

jbsarrodie commented 5 years ago

Hi,

Happy new year too !

I create new repository git, and add .git example , repo1.git

You don't have to add ".git" yourself, this is done automatically. This leads me again to my first idea that you are not using the git URL but the web URL of your code management system, so please, as previously asked: tell us which code/git management system you use. Is it GitLab, GitHub, BitBucket...

To be even clearer and illustrate on GitHub: The "web" url of the archi git repository is https://github.com/archimatetool/archi, but this is not the git url. Too get its real url you have to click on the green "Clone or download" button to reveal it: https://github.com/archimatetool/archi.git . In this example the only difference is the trailling ".git" but this really depends on the server you use and the url pattern could be really different.

after this step, my model should be in remote git server right?

Right, and the easiest way to check is simply to go to the web based git system to see if a first commit has been added.

BTW, when creating the repo it is mandatory to create a new empty repo, that doesn't even include a README (some systems suggest to create one README file for you so you have to explicitly disable it).

Phillipus commented 5 years ago

Open preferences and go to collaboration tab then change the local repository folder to new one

This might cause a problem. Are you doing this each time? It should be set once to a parent folder.

jbsarrodie commented 5 years ago

This might cause a problem. Are you doing this each time? It should be set once to a parent folder.

I don't think so. My understanding is that he did this to test the import of this model in a newly created workspace (and still being able to switch back to the original workspace).

Phillipus commented 5 years ago

I'm wondering why there is a model called ID_ARCH.archimate in the folder?

abrahamangasisiahaan commented 5 years ago

Hi All,

You don't have to add ".git" yourself, this is done automatically. This leads me again to my first idea that you are not using the git URL but the web URL of your code management system, so please, as previously asked: tell us which code/git management system you use. Is it GitLab, GitHub, BitBucket...

regarding this question i think we use github, do we have command to check it?

abrahamangasisiahaan commented 5 years ago

I'm wondering why there is a model called ID_ARCH.archimate in the folder?

actually its previouslya iam not using collaboration so only store the archimate file there

jbsarrodie commented 5 years ago

regarding this question i think we use github, do we have command to check it?

Well, it's usually written on the web page itself. You can check github, gitlab and bitbucket UI on internet.If unsure, please provide a screenshot of what you see in your browser when connected to the repository.

actually its previouslya iam not using collaboration so only store the archimate file there

A git repository should be dedicated to the collaboration plugin and not contain anything else.