Updated 063 Proposed Collaborative Workflow in JCB (markdown)

Amigo 2019-11-01 09:23:59 +02:00
parent 3b302d1e94
commit f80d68ea62
1 changed files with 14 additions and 14 deletions

@ -5,9 +5,9 @@
[00:00:00](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h00m00s)
(Click on these time links to see Youtube video)
I want to talk to you about a collaborative workflow. JCB like any other Joomla Component can function in a shared environment quite easily, where you have one website or one system that is online, and people can login, and can [00:00:22](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h00m22s) edit components. They can click on a component and while they're working on that component, no one else can, because it will in effect lock the component out for them. If we open the list view again, you will see that it is checked out. This functionality [00:00:46](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h00m46s) is available in JCB. Whether it's an admin view, or a field. If your login and someone else opens it up, it checks out the item. People can work together quite easily in a shared environment where they have one JCB, but multiple users. More than that it also has a very strong Permissions structure,[00:01:13](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h01m13s) which if you open the Component Builder Permissions area, you'll see that it has quite a long list.
I want to talk to you about a collaborative workflow. JCB like any other Joomla Component can function in a shared environment quite easily, where you have one website or one system that is online, and people can log in, and can [00:00:22](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h00m22s) edit components. They can click on a component and while they're working on that component, no one else can, because it will in effect lock the component out for them. If we open the list view again, you will see that it is checked out. This functionality [00:00:46](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h00m46s) is available in JCB. Whether it's an admin view, or a field. If your login and someone else opens it up, it checks out the item. People can work together quite easily in a shared environment where they have one JCB, but multiple users. More than that it also has a very strong Permissions structure,[00:01:13](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h01m13s) which if you open the Component Builder Permissions area, you'll see that it has quite a long list.
I suppose longer than one might anticipate, it's a long list of permissions. It means you can have different groups in your Joomla groups regarding to Public, Guest etc, that have access and is allowed to work on only certain areas. [00:01:44](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h01m44s) Your possibilities of setting up a development workflow with JCB in one Joomla website is endless. That was the whole idea. The idea behind here was to make JCB a place where you could have teams work together in Joomla Developing Components. This is the one that's worked from day one, this approach. It's very powerful. [00:02:11](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h02m11s) I've already been told by quite a number of developers that they are using that. They have teams working together on components and it is excellent.
I suppose longer than one might anticipate, it's a long list of permissions. It means you can have different groups in your Joomla groups regarding Public, Guest, etc, that have access and is allowed to work on only certain areas. [00:01:44](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h01m44s) Your possibilities of setting up a development workflow with JCB in one Joomla website is endless. That was the whole idea. The idea behind here was to make JCB a place where you could have teams work together in Joomla Developing Components. This is the one that's worked from day one, this approach. It's very powerful. [00:02:11](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h02m11s) I've already been told by quite a number of developers that they are using that. They have teams working together on components and it is excellent.
### Offline Environment
@ -19,7 +19,7 @@ We all know JCBs most desirable environment is an offline environment. Where you
[00:03:13](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h03m13s)
We've also started working on a area called servers. In which we have added the option for SFTP which is really smart protocol. It's purely PHP. It will function in moving zip files and things around. But the idea would be in the long run [00:03:44](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h03m44s) that we could possibly create connections between different JCBs which could automatically synchronize things almost like they're on the same system. I did have a thread open on that on Github, connecting JCB's with each other to sync development on agreed projects. That was the issue that I opened up, issue 233.
We've also started working on an area called servers. In which we have added the option for SFTP which is really smart protocol. It's purely PHP. It will function in moving zip files and things around. But the idea would be in the long run [00:03:44](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h03m44s) that we could possibly create connections between different JCBs which could automatically synchronize things almost like they're on the same system. I did have a thread open on that on Github, connecting JCB's with each other to sync development on agreed projects. That was the issue that I opened up, issue 233.
### New Feature - Development Method
@ -32,19 +32,19 @@ So part of doing that is to take a specific area of JCB and that area is the imp
[00:06:18](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h06m1s)
If you are listening you'd realize where I'm heading. I'm trying to get to the point where I can have a team of developers. All having their offline environments, doing development on the same project, and as they feel they achieved a certain level of stability in the project in a certain area, they can make a pull request to the online environment where JCB is running. Others can review those changes and [00:06:47](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h06m47s) made that component come in as a clone. They can play around with it until they feel this is good enough. It can be merged into the main branch somehow. It's somehow putting Git in an interface. At some point I became so overwhelmed with the task that I started doing all these other little things that you now see coming about.
If you are listening you'd realize where I'm heading. I'm trying to get to the point where I can have a team of developers. All having their offline environments, doing development on the same project, and as they feel they achieved a certain level of stability in the project in a certain area, they can make a pull request to the online environment where JCB is running. Others can review those changes and [00:06:47](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h06m47s) made that component come in as a clone. They can play around with it until they feel this is good enough. It can be merged into the main branch somehow. It's somehow putting Git in an interface. At some point, I became so overwhelmed with the task that I started doing all these other little things that you now see coming about.
### Added VDM Packages
[00:07:15](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h07m15s)
One of them I have added is a VDM package area, which takes all the packages that we have available online and put it here, easy to get hold of. There are some free ones between them at the moment, like this Demo package. All of the packages that are available on GitHub, the actual Joomla Component of this package, will have the source code link showing up. You can go and look if you select Question and Answers.
One of them I have added is a VDM package area, which takes all the packages that we have available online and put them here, easy to get hold of. There are some free ones between them at the moment, like this Demo package. All of the packages that are available on GitHub, the actual Joomla Component of this package, will have the source code link showing up. You can go and look if you select Questions and Answers.
### JCB Packages Produces Source Code
[00:07:56](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h07m56s)
There's a source code area where you can go and look on GitHub to this program and you can take it and install it on Joomla website, to see its functionality and to see its features. That's how you can evaluate the package easily. It means that this JCB package produces this source code, that's what it gets down to. The current workflow model looks as follow.
There's a source code area where you can go and look on GitHub to this program and you can take it and install it on Joomla website, to see its functionality and to see its features. That's how you can evaluate the package easily. It means that this JCB package produces this source code, that's what it gets down to. The current workflow model looks as follows.
### Mapped Component
@ -56,47 +56,47 @@ First, you need to realize there is the JCB Mapped Component and then there is t
[00:09:04](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h09m04s)
Where as the Joomla Component is the produced package which when you compile that Mapped Component it produces a Joomla Component and these are two different things. Although they are the same thing. When I think about the workflow, then JCB Mapped Component is affecting Joomla Component. But Joomla Component cannot effect JCB Mapped Component. You can change JCB Mapped Component, make changes to the package and it would uses a different [00:09:35](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h09m35s) result in Joomla Component package. But if you make changes to Joomla Component package, it does not immediately make any difference to JCB Mapped Component package. Unless you make use of what we have called the custom code implementation where you do editing within the IDE. Then, yes, making changes to Joomla Component package will affect JCB Mapped Component. But that's a whole different story, [00:10:00](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h10m00s) and a little bit beyond what I want to explain. When I think about a workflow, then I would like to see that we make a change to JCB Mapped Component package. It gets validated by what we have here (Joomla Component) and then everybody updates again this package to be the same as what we decided on. That may not make sense.
Whereas the Joomla Component is the produced package which when you compile that Mapped Component it produces a Joomla Component and these are two different things. Although they are the same thing. When I think about the workflow, then JCB Mapped Component is affecting Joomla Component. But Joomla Component cannot effect JCB Mapped Component. You can change JCB Mapped Component, make changes to the package and it would use a different [00:09:35](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h09m35s) result in Joomla Component package. But if you make changes to Joomla Component package, it does not immediately make any difference to JCB Mapped Component package. Unless you make use of what we have called the custom code implementation where you do editing within the IDE. Then, yes, making changes to Joomla Component package will affect JCB Mapped Component. But that's a whole different story, [00:10:00](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h10m00s) and a little bit beyond what I want to explain. When I think about workflow, then I would like to see that we make a change to JCB Mapped Component package. It gets validated by what we have here (Joomla Component) and then everybody updates again this package to be the same as what we decided on. That may not make sense.
### Demonstration - Example - Questions And Answers
[00:10:26](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h10m26s)
Let me add some arrows and a demonstration to this. I'm going to use Question And Answers Package as an example. If you are going to become a Collaborator on the Question And Answers package. Then you'd first need to go to the source code of it. On GitHub you would go and open the source code, and you will fork this source code. Which would then [00:10:57](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h10m57s) give you the option of making changes to the Question And Answers. But not directly manually but instead through JCB. That means that you will then clone this repository that you have forked down to your local development environment, and doing it as follow.
Let me add some arrows and a demonstration of this. I'm going to use Question And Answers Package as an example. If you are going to become a Collaborator on the Question And Answers package. Then you'd first need to go to the source code of it. On GitHub you would go and open the source code, and you will fork this source code. Which would then [00:10:57](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h10m57s) give you the option of making changes to the Question And Answers. But not directly manually but instead through JCB. That means that you will then clone this repository that you have forked down to your local development environment, and doing it as follow.
### First - Local Developing Environment - Options Area - Set Folder Path - Git Path
The first thing you do is you go back to your component where it's installed on your local developing environment, [00:11:26](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h11m26s) open the options area, set the folder path for your Git files. You are going to have a place where all your Git files, the component unzipped, is going to be placed automatically for you. Here you can [00:11:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h11m45s) add that. I'm going to place it in my user folder. I'm going to create a folder then call it, Joomla. I have to do this manually. Then inside of that I'm going to add another folder called 'Git'. I'm going to save this. I'm quickly going to create those folders and show it to you in the command line. I need to first add the [00:12:18](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h12m18s) Company information. Save and close. This is just the language, make sure to put it to British at this stage. It is the best practice. I don't want to have any prefix at this stage. [00:12:42](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h12m42s) Save and close. We've got our Git path setup.
The first thing you do is you go back to your component where it's installed on your local developing environment, [00:11:26](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h11m26s) open the options area, set the folder path for your Git files. You are going to have a place where all your Git files, the component unzipped, is going to be placed automatically for you. Here you can [00:11:45](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h11m45s) add that. I'm going to place it in my user folder. I'm going to create a folder then call it, Joomla. I have to do this manually. Then inside of that, I'm going to add another folder called 'Git'. I'm going to save this. I'm quickly going to create those folders and show them to you in the command line. I need to first add the [00:12:18](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h12m18s) Company information. Save and close. This is just the language, make sure to put it to 'British' at this stage. It is the best practice. I don't want to have any prefix at this stage. [00:12:42](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h12m42s) Save and close. We've got our Git path setup.
### Create Files In Local Developing Environment - Via Command Line
[00:12:49](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h12m49s)
I need to create those files in my local developing environment. I'll do that via command line. First, I will make a directory, then I'm going to change that directory. In that directory I'm going to create another directory called, 'Git', change that directory as well. This is the directory where my components are going to be placed. At the moment if we look inside of this directory, there is really nothing showing. The first time I will compile a component [00:13:34](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h13m34s) and I will say to the compiler to add my files to the Git repository. It's going to create a folder with all the code inside it automatically. You will remember that I cloned this repository on GitHub Joomla Questions And Answers. [00:13:54](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h13m54s) To continue I need to get the JCB package for this installed into my JCB program. The way this is done, we go to the JCB package area and select the Questions And Answers package. We will get the package. [00:14:18](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h14m18s) We add the key. At the moment there are not any components on this install. It's fine to leave '_Merge_' to 'Yes'. I'm going to Force Local Update of anything. We can just check again that it is the right package. It's the correct package. The checksum you can read. There is a checksum for the package and at the moment it seems that everything is fine, you can make a final check by clicking this link(https://raw.githubusercontent.com/vdm.io) [00:14:50](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h14m50s) and make sure that this number is the same as the one seeing on the page. All is good, click continue. There you have it. We've the component in our system.<<<<<<<<<
I need to create those files in my local developing environment. I'll do that via command line. First, I will make a directory, then I'm going to change that directory. In that directory I'm going to create another directory called, 'Git', change that directory as well. This is the directory where my components are going to be placed. At the moment if we look inside of this directory, there is really nothing showing. The first time I will compile a component [00:13:34](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h13m34s) and I will say to the compiler to add my files to the Git repository. It's going to create a folder with all the code inside it automatically. You will remember that I cloned this repository on GitHub Joomla Questions And Answers. [00:13:54](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h13m54s) To continue I need to get the JCB package for this installed into my JCB program. The way this is done, we go to the JCB package area and select the Questions And Answers package. We will get the package. [00:14:18](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h14m18s) We add the key. At the moment there are not any components on this install. It's fine to leave '_Merge_' to 'Yes'. I'm going to Force Local Update of anything. We can just check again that it is the right package. It's the correct package. The checksum you can read. There is a checksum for the package and at the moment it seems that everything is fine, you can make a final check by clicking this link(https://raw.githubusercontent.com/vdm.io) [00:14:50](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h14m50s) and make sure that this number is the same as the one seeing on the page. All is good, click continue. There you have it. We've the component in our system.
### Compile For The First Time - Add To Repository Folder - Yes
[00:15:07](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h15m07s)
If I compile it for the first time, for your sake let me show you that there still is no file whatsoever. I'm going to compile this component and I'm going to say: Add to Repository Folder. [00:15:30](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h15m30s) "Should the zipped package of the component be moved to the local repository folder." We have already set the path for this. It will work. If we say Yes and then compile, we will see that it's been done and it's all well. We can go back to the folder and check it again. We will see that there is a folder with its exact name. If we change it in that folder, we'll see that it is at the moment ls-la. [00:16:03](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h16m03s) There's no Git information. This folder is a source code without any Git connected to it. What we are going to do at this point, we are going to connect your forked version that you have on GitHub [00:16:22](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h16m22s) to this folders. And from now on if you make a change to the component, you'll have to push the changes in this folder to the GitHub Repository.
If I compile it for the first time, let me show you that there still is no file whatsoever. I'm going to compile this component and I'm going to say: Add to Repository Folder. [00:15:30](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h15m30s) "Should the zipped package of the component be moved to the local repository folder." We have already set the path for this. It will work. If we say 'Yes' and then compile, we will see that it has been done and it's all well. We can go back to the folder and check it again. We will see that there is a folder with its exact name. If we change it in that folder, we'll see that it is at the moment ls-la. [00:16:03](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h16m03s) There's no Git information. This folder is a source code without any Git connected to it. What we are going to do at this point, we are going to connect your forked version that you have on GitHub [00:16:22](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h16m22s) to this folders. And from now on if you make a change to the component, you'll have to push the changes in this folder to the GitHub Repository.
### Use Following Commands To Link GitHub To Each Other
[00:16:35](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h16m35s)
The way to make the GitHub, link the two to each other, is to use the following commands. Making sure that you're in the correct directory com_questions_and_answers_joomla_3. You can run the command rm - fR *. I know you might say why? We did compile it and now delete everything. Well unfortunately [00:17:10](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h17m10s) this is the only way to do this without difficulty. First you need to get the information down from GitHub. You might ask why didn't we just do that first? Because it seemed easier to just let JCB build the folder for you and can use the folder. I'm going to wipe out all the files, if we check there now, no file is there.
The way to link the two to each other, is to use the following commands. Making sure that you're in the correct directory `com_questions_and_answers_joomla_3`. You can run the command `rm - fR *`. I know you might say why? We did compile it and now delete everything. Well, unfortunately [00:17:10](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h17m10s) this is the only way to do this without difficulty. First, you need to get the information down from GitHub. You might ask why didn't we just do that first? Because it seemed easier to just let JCB build the folder for you and can use the folder. I'm going to wipe out all the files, if we check there now, no file is there.
### Starting By Pulling Files Down from GitHub - git init - git remote add orgin
[00:17:35](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h17m35s)
We are going to start by pulling the files down from GitHub. First say: git init. Then to add the remote branch and to get the remote branch URL, your type out: git remote add origin. Then go to GitHub where you have forked the branch. [00:18:02](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h18m02s) You will get the URL by copying it. You can either use the HTTPS or the SSH which in my case I prefer. Paste it in there and click save. If you would check the config information, you'll see that this remote branch is being added.
We are going to start by pulling the files down from GitHub. First say: `git init`. Then to add the remote branch and to get the remote branch URL, your type out: `git remote add origin`. Then go to GitHub where you have forked the branch. [00:18:02](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h18m02s) You will get the URL by copying it. You can either use the HTTPS or the SSH which in my case I prefer. Paste it in there and click to save it. If you would check the config information, you'll see that this remote branch has been added.
### Next - Pull Down The Master Branch - ls-la - git status - git diff
[00:18:24](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t24)
The next thing to do is to pull down the master branch. This is done with: git pull origin master. This will now get all the information from GitHub which is the same as what you have behind my command line screen. If we are going to do Ls-la we'll see that all the files are back as they should be. We have git here as well. My [00:19:01](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h19m01s) command line shows us that we have a git repository and we are on the master branch. That was to get us linked to this repository. Now we can go and compile it again. At the moment if we do git status, it should say that everything is fine and clean and there is no difference between these two. But the moment we will do another compile, [00:19:30](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h19m30s) it's going to change the files. If we do: git status, we'll see that all these files were modified and we can check to see what was modified by doing: git diff, we'll see it added more lines(see video). The compiled version was the 24th of April [00:20:03](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h20m03s) and now it's the 5th of May. Scroll down. Here is another one that have changed. There's some XML that changed. We have made an improvement to the jsonToString in JCB. It also updated those functions. We have removed the prefix [00:20:41](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h20m41s) to the name. That's been updated. So you can look through the diff to see all the changes that has been made. The reason why the XML file format is changed, is because we are using different XML compiler. I can show you that in a moment that you might understand.
The next thing to do is to pull down the master branch. This is done with: `git pull origin master`. This will now get all the information from GitHub which is the same as what you have behind my command line screen. If we are going to do `Ls-la` we'll see that all the files are back as they should be. We have `git` here as well. My [00:19:01](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h19m01s) command line shows us that we have a git repository and we are on the master branch. That was to get us linked to this repository. Now we can go and compile it again. At the moment if we do `git status`, it should say that everything is fine and clean and there is no difference between these two. But the moment we will do another compile, [00:19:30](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h19m30s) it's going to change the files. If we do: `git status`, we'll see that all these files were modified and we can check to see what was modified by doing: `git diff`, we'll see it added more lines(see video). The compiled version was the 24th of April [00:20:03](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h20m03s) and now it's the 5th of May. Scroll down. Here is another one that have changed. There's some XML that changed. We have made an improvement to the `jsonToString` in JCB. It also updated those functions. We have removed the prefix [00:20:41](https://www.youtube.com/watch?v=zlhFyrCGWik&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=63&t=00h20m41s) to the name. That's been updated. So you can look through the diff to see all the changes that has been made. The reason why the XML file format is changed, is because we are using different XML compiler. I can show you that in a moment. <<<<<<<<<<<<<<<<<<<<<<<<
### Global Options - Two Ways To Compile XML In JCB - SimleXMLElement - String Manipulation Option