Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » GIT support integration to the IDE (Can you help to improve GIT support in the IDE? Test the prototype!)
GIT support integration to the IDE [message #47022] Tue, 08 November 2016 12:31 Go to next message
coolman is currently offline  coolman
Messages: 86
Registered: April 2006
Location: Czech Republic
Member
Hi.

I try to implement GIT support to the IDE. You can find the actual implementation at https://github.com/CoolmanCZ/mirror.
Currently is supported:
* basic integration with IDE to support manipulation with the files
* GIT configuration
* GIT branch / remote configuration
* fetch, merge, push
* commit
* stash / stash apply
* GIT repository history
* GIT file history

I would like to ask you to help me with the testing, also suggestions are welcome. Please, take into account that the current implementation is a prototype. So It can be changed/enhanced by your requests.
For your requirements, please use the issue tracker at the link mentioned above.

Thanks, Radek

[Updated on: Mon, 14 November 2016 10:10]

Report message to a moderator

Re: GIT support integration to the IDE [message #47024 is a reply to message #47022] Tue, 08 November 2016 23:24 Go to previous messageGo to next message
mr_ped is currently offline  mr_ped
Messages: 815
Registered: November 2005
Location: Czech Republic - Praha
Experienced Contributor

I'm quite content with using git-cola in second windows, but one thing would be very nice for me.

"Annotate" (called "blame" few years back Smile) on current tab, so every line would have line number on left with color-per-commit + commint author, and on mouse hover the commit message would be displayed (I like the look of this feature in Android Studio (IntelliJ based)).
Re: GIT support integration to the IDE [message #47025 is a reply to message #47022] Wed, 09 November 2016 15:44 Go to previous messageGo to next message
deep is currently offline  deep
Messages: 227
Registered: July 2011
Location: Bangalore
Experienced Member
Hi,

Tested TheIDE with git.
Working good on first use.

Downloaded and compiled from your sources.

Then added .git folder of git clone from "https://github.com/ultimatepp/mirror"
Checked with https://github.com/ultimatepp/mirror

Also working with internally hosted gitlab server.

Nice work. Will use it. I was looking for it.

"git blame" may be useful


Warm Regards

Deepak

[Updated on: Wed, 09 November 2016 15:46]

Report message to a moderator

Re: GIT support integration to the IDE [message #47044 is a reply to message #47022] Sat, 19 November 2016 15:09 Go to previous messageGo to next message
deep is currently offline  deep
Messages: 227
Registered: July 2011
Location: Bangalore
Experienced Member
Hi Radek,

Can you give this in diff format.

Will be easy to add to the current HEAD.


Warm Regards

Deepak
Re: GIT support integration to the IDE [message #47045 is a reply to message #47044] Sat, 19 November 2016 15:33 Go to previous messageGo to next message
coolman is currently offline  coolman
Messages: 86
Registered: April 2006
Location: Czech Republic
Member
deep wrote on Sat, 19 November 2016 15:09

Can you give this in diff format.


Hi,

I'm sorry, but I don't understand your request. Can you be more specific?

Radek
Re: GIT support integration to the IDE [message #47046 is a reply to message #47045] Sat, 19 November 2016 16:16 Go to previous messageGo to next message
deep is currently offline  deep
Messages: 227
Registered: July 2011
Location: Bangalore
Experienced Member
Hi,

The present Trunk in main repo is different than what you have used.

To use your modifications with current HEAD in git will require the patch for your changes.

You used some branch of IDE and then created your additions for git integration.

Can you create patch with ref to your original ide branch.

I would like to use patch to current HEAD.


Warm Regards

Deepak
Re: GIT support integration to the IDE [message #47049 is a reply to message #47046] Sun, 20 November 2016 20:21 Go to previous messageGo to next message
coolman is currently offline  coolman
Messages: 86
Registered: April 2006
Location: Czech Republic
Member
deep wrote on Sat, 19 November 2016 16:16
Hi,

The present Trunk in main repo is different than what you have used.

To use your modifications with current HEAD in git will require the patch for your changes.

You used some branch of IDE and then created your additions for git integration.

Can you create patch with ref to your original ide branch.

I would like to use patch to current HEAD.


Hi,

Thanks for the explanation. But you can create the diff yourself.
1. Clone the GIT repository
git clone https://github.com/CoolmanCZ/mirror upp_git

2. Add remote upstream to the trunk repository
cd upp_git
git remote add upstream https://github.com/ultimatepp/mirror

3. Create the diff
git diff upstream/master..HEAD


When you are using the IDE from the U++ GIT repository and you already have the upstream configured, you don't need the patch. You can merge the changes from the upstream to the U++ GIT repository using integrated merge function.

Best regards, Radek

Edit: I am trying to keep the U++ GIT repository up to date with the latest trunk version of the IDE.

[Updated on: Sun, 20 November 2016 20:48]

Report message to a moderator

Re: GIT support integration to the IDE [message #47050 is a reply to message #47049] Mon, 21 November 2016 05:43 Go to previous messageGo to next message
deep is currently offline  deep
Messages: 227
Registered: July 2011
Location: Bangalore
Experienced Member
Hi Radek,

coolman wrote on Mon, 21 November 2016 00:51
Edit: I am trying to keep the U++ GIT repository up to date with the latest trunk version of the IDE.


This will be great.


Warm Regards

Deepak
Re: GIT support integration to the IDE [message #49311 is a reply to message #47050] Wed, 24 January 2018 17:52 Go to previous messageGo to next message
coolman is currently offline  coolman
Messages: 86
Registered: April 2006
Location: Czech Republic
Member
Hi all,

After a long pause I've completed the basic functionality of the U++ GIT support. I'd like to ask you for the testing. If you find a bug create an issue at the GitHub, please. Do the same if you have any suggestions / requests.

Thank you, Radek
Re: GIT support integration to the IDE [message #49313 is a reply to message #49311] Wed, 24 January 2018 21:13 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 824
Registered: September 2012
Location: Poland, Kraków
Experienced Contributor
Hello Radek,

I see you integrated your U++ branch with travis CI. How do you achieve that? I am strongly interested in doing the same for U++ mirror. Can you tell me more about this?

Sincerely,
Klugier


Ultimate++ - one framework to rule them all.
Re: GIT support integration to the IDE [message #49315 is a reply to message #49313] Thu, 25 January 2018 07:40 Go to previous messageGo to next message
coolman is currently offline  coolman
Messages: 86
Registered: April 2006
Location: Czech Republic
Member
Hi,

In the travis.yml you can see, what have to be installed on the Travis build machine. I've been using the upp_cmake script as git submodule. And the script ./generate_cmake_ide.sh is used to generate CMakeLists.txt files and build the IDE. I've got the scripts to generate and build autotest, examples, references, tutorial and upptst, but these are not in the git repository yet. I can put them to the repository if you are interested in.

I've been thinking about the automatic cross building of the Windows binary of the IDE every week to pull the tarbal to the GitHub using the Travis, but right now it doesn't make the sense. I don't know if anybody else using this fork. Smile

BR, Radek
Re: GIT support integration to the IDE [message #49316 is a reply to message #49311] Thu, 25 January 2018 11:12 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13051
Registered: November 2005
Ultimate Member
coolman wrote on Wed, 24 January 2018 17:52
Hi all,

After a long pause I've completed the basic functionality of the U++ GIT support. I'd like to ask you for the testing. If you find a bug create an issue at the GitHub, please. Do the same if you have any suggestions / requests.

Thank you, Radek


BTW, U++ Synchronize now supports GIT as well (since 2017.2)...

The general idea is perhaps somewhat different from what you would expect from "real GIT support" - the idea, just as with SVN synchronize, is to automate repetitive tasks (commit / push / pull).
Re: GIT support integration to the IDE [message #49318 is a reply to message #49316] Thu, 25 January 2018 12:11 Go to previous messageGo to next message
coolman is currently offline  coolman
Messages: 86
Registered: April 2006
Location: Czech Republic
Member
[quote title=mirek wrote on Thu, 25 January 2018 11:12]coolman wrote on Wed, 24 January 2018 17:52
Hi all,

BTW, U++ Synchronize now supports GIT as well (since 2017.2)...

The general idea is perhaps somewhat different from what you would expect from "real GIT support" - the idea, just as with SVN synchronize, is to automate repetitive tasks (commit / push / pull).


Hi,

Yes, I know about this feature. It can be used for synchronization.

But I needed something, e.g. for basic resolving the conflict during the merge, ... To minimize the situation with switching to the CMD to resolve the simple GIT problems.

BR, Radek
Re: GIT support integration to the IDE [message #49964 is a reply to message #47022] Thu, 07 June 2018 13:25 Go to previous message
coolman is currently offline  coolman
Messages: 86
Registered: April 2006
Location: Czech Republic
Member
Hi,

I would like to invite you to try GIT menu implementation (develop branch) to the IDE.

BR, Radek

The current implementation includes the following options for manipulating a GIT repository

GIT init repository
Can be used to initialize the GIT repository for selected package if the package is not a part of already initialized GIT repository. When initialization is successfully done GIT config is invoked.

GIT config
It allows you to change the configuration parameters of individual GIT repositories as well as global GIT settings.
(all available GIT repositories are shown)

GIT history
This item displays the GIT commit history of the currently selected branch. A part of the view is a detailed listing of the currently selected commit or a summary of lines and files changed in this commit.
The right click menu allows you to create a new branch, insert/delete/show tags or create a diff/GIT patch of selected commit.
(all available GIT repositories are shown)

GIT update status
Compares and displays the status of local and remote branches within single GIT repositories.

GIT status
Shows the GIT status of the repository that contains the currently edited file.

GIT fetch
Download objects and refs from all remote repositories. Fetches branches and/or tags (collectively, "refs") along with the objects necessary to complete their histories. Remote-tracking branches are updated.
(git fetch is invoked on all available repositories)

GIT merge
Allows you to incorporate changes from one branch (even remote branch) into the current branch. You can see all changes between selected branches before the merge.
(all available GIT repositories are shown)

GIT stash
Stashing takes the dirty state of your working directory - that is, your modified tracked files and staged changes - and saves it on a stack of unfinished changes that you can reapply at any time.

GIT stash apply
You can select and apply the saved changes you just stashed previously.

GIT commit
Stores the current contents of the index in a new commit along with a log message from the user describing the changes. Before the commit you can see all changes made in the repository and:
- discard changes for a particular file
- basic manipulation with unmerged changes
- add untracked file to the repository
- delete file from the repository
- add file to the .gitignore file
- delete file

note: left doubleclick at the line in the right side of the diff output opens the appropriate file in the editor.
(all available GIT repositories are shown)

GIT push
Updates remote refs using local refs, while sending objects necessary to complete the given refs.
(git push is invoked on all available repositories)

GIT branch
Allows you to add / modify / delete /checkout a local branch. There is also the option to add / modify / delete a remote repository, including pairing a local branch with a remote branch in a remote repository.
(all available GIT repositories are shown)

GIT patch apply/abort
Reads the supplied diff output (i.e. "a patch") and applies it to files. When running from a subdirectory in a repository, patched paths outside the directory are ignored. This command applies the patch and create commits from patches generated by git-format-patch and/or received by email.
If the patch apply has failed, you can abort this patch using this menu option.

Show repository history of the file...
Shows GIT history of the edited file (diff output and detailed description of the commit)

Show repository history of the file lines...
Shows what revision and which author has later modified each row of the edited file.
Previous Topic: SortedVectorMap - attempting to reference a deleted function error
Next Topic: Android port
Goto Forum:
  


Current Time: Sat Jan 23 18:05:51 CET 2021

Total time taken to generate the page: 0.01046 seconds