SlideShare a Scribd company logo
GitHub/git +GitHub/git +
CMake +CMake +
CLionCLion
GitGit
25.04.17 Igor Khokhriakov 3
Git
“Git was created by Linus Torvalds in 2005 for
development of the Linux kernel, with other kernel
developers contributing to its initial development.”
Wikipedia.org
According to StackOverflow survey 2017 ~70% of
developers are using git
25.04.17 Igor Khokhriakov 4
Key points about Git
● Strong support for non-linear development
– a core assumption is that a change will be merged more
often than it is written
● Distributed development
– Git gives each developer a local copy of the full
development history
● Efficient handling of large projects
– an order of magnitude faster than some version control
systems
GitHubGitHub
25.04.17 Igor Khokhriakov 6
GitHub
● Hosting that provides git service
● Suddenly became a central feature in git
ecosystem
– My personal experience is that back in 2012 they
did not have even in-line commit comment (vs
bitbucket)
25.04.17 Igor Khokhriakov 7
Summary
SourceForge/svn = GitHub/git
aka Hosting/repository
SourceForge/svn ≠ GitHub/git
GitHub provides tons of features and
integrations: travis, appveyor, read-the-
docs, ...
PRACTICEPRACTICE
25.04.17 Igor Khokhriakov 9
Git concept
● Simple case: one user; direct access to the remote repo
– Create new file:
25.04.17 Igor Khokhriakov 10
Git concept
– Working with branches:
● $> git branch my_branch
● $> git checkout my_branch
– Shortcut: git checkout -b my_branch
● Do stuff
● $> git push -u my_branch origin
– Merging branch into the master
● $> git checkout master
● $> git merge my_branch
25.04.17 Igor Khokhriakov 11
Git cheat sheet
http://files.zeroturnaround.com/pdf/zt_git_cheat_sheet.pdf
GitHub/git workflowGitHub/git workflow
25.04.17 Igor Khokhriakov 13
GitHub concept
● Contributing via Pull-Request (PR)
25.04.17 Igor Khokhriakov 14
GitHub concept
– Creating a Pull-Request
● GitHub fork
● $> git clone …
● $> git checkout -b feature
● Do stuff
● $> git push
● GitHub create a Pull-Request
● Do more pushes
25.04.17 Igor Khokhriakov 15
GitHub concept
– Rebasing onto master
● $> git pull –rebase upstream master
● $> git push
– Closing the PR
● maintainer(s) approval(s) + tests passed
● GitHub megre PR
● $> git branch -d feature
● Sync fork master (origin) with upstream master
– $> git checkout master; git pull upstream master
25.04.17 Igor Khokhriakov 16
gitk
25.04.17 Igor Khokhriakov 17
https://www.atlassian.com/git/tutorials
25.04.17 Igor Khokhriakov 18
Keep in mind
● Git is very powerful and flexible
– github.com/tango-controls/cppTango
● Merged 4 repositories
● Preserved commits history
● Preserved branches
Do not hesitate to google the
most astounding ideas
aka How can I do X in git
CMakeCMake
25.04.17 Igor Khokhriakov 20
CMake
● Cross-platform build automatization tool
● Declarative scripting language for managing
native projects
● Dependency management (via pkg-config or
cmake modules)
● Testing
● Packaging
25.04.17 Igor Khokhriakov 21
CmakeLists.txt
25.04.17 Igor Khokhriakov 22
Build using cmake
● $> mkdir build
● $> cd build
● $> cmake ..
● $> make
● $> make install
… better use IDE like CLion
25.04.17 Igor Khokhriakov 23
CMake guide lines
● Use the following directory structure:
– configure
– include
– docs
– src
– test
● Use dedicated project when configuration is totally different
from the root project
25.04.17 Igor Khokhriakov 24
CMake guide lines
● Split complex project into modules
– add_library(my_module OBJECT …)
● Use CTest for integration testing. Unit tests
must be independent
● Use CPack to generate packages and custom
targets to deploy them
– add_custom_target(COMMAND curl ...)
25.04.17 Igor Khokhriakov 25
Where get help?
● No good book :(
● Find some open-source project and explore it
– https://github.com/pni-libraries/libpnicore
– https://github.com/ufo-kit/ufo-core
● CMake itself... for gurus
CLionCLion
25.04.17 Igor Khokhriakov 27
25.04.17 Igor Khokhriakov 28
Agenda
● CMake support
● Navigation
● Refactoring
● Git integration
● Debugging
● Creating live templates
25.04.17 Igor Khokhriakov 29
CMake support
File → settings
OR
ctrl+alt+s
25.04.17 Igor Khokhriakov 30
CMake support
● Run targets
25.04.17 Igor Khokhriakov 31
Navigation
● Find class: ctrl+n
● Find file: ctrl+shift+n
● Subclasses:
● Implementation
&Override:
25.04.17 Igor Khokhriakov 32
Navigation
● Method lookup: ctrl+F12 OR structure tab
● Code navigation: ctrl+click on an item
● Find usages: Alt+F7
25.04.17 Igor Khokhriakov 33
Refactoring
● Rename: shift+F6
● Change signature: ctrl+F6
● Move entity: F6
● Generate definitions: ctrl+shift+d
● Generate … : alt+insert
● Generate constructor
that matches super
25.04.17 Igor Khokhriakov 34
Refactoring
● Extract method: highlight and ctrl+alt+m
● Extract variable: highlight and ctrl+alt+v
● Extract …: Refactoring → Extract
– Constant
– Parameter
– Define
– Typedef
– Superclass
– Subclass
25.04.17 Igor Khokhriakov 35
Git integration
● Compare with branch...
● Make pull request
● Resolve conflicts
● Rebase
● Etc: VCS → Git; context menu → Git
● Local changes&history:
25.04.17 Igor Khokhriakov 36
Debugging
25.04.17 Igor Khokhriakov 37
Live template creation
25.04.17 Igor Khokhriakov 38
https://www.jetbrains.com/help/clion/2017.1/reference.html
Live coding!Live coding!
Questions?Questions?
Thank you!!!Thank you!!!

More Related Content

What's hot

The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
 
Git kelvin
Git   kelvinGit   kelvin
Git kelvin
Kwong Wang Ho
 
Git basics
Git basicsGit basics
Git basics
Padmavathi Tiwari
 
Git hub visualstudiocode
Git hub visualstudiocodeGit hub visualstudiocode
Git hub visualstudiocode
Rolands Krumbergs
 
(Open Hack Night 2014) GitHub Tutorial
(Open Hack Night 2014) GitHub Tutorial(Open Hack Night 2014) GitHub Tutorial
(Open Hack Night 2014) GitHub Tutorial
James Griffin
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Yan Vugenfirer
 
Git hub
Git hubGit hub
COSCUP Scouter: Face recognizer retrieves your Github contribution
COSCUP Scouter: Face recognizer retrieves your Github contributionCOSCUP Scouter: Face recognizer retrieves your Github contribution
COSCUP Scouter: Face recognizer retrieves your Github contribution
Che-Chia Chang
 
Contributing to open source using Git
Contributing to open source using GitContributing to open source using Git
Contributing to open source using Git
Yan Vugenfirer
 
Introduction to git and github
Introduction to git and githubIntroduction to git and github
Introduction to git and github
Aderemi Dadepo
 
Git & git hub
Git & git hubGit & git hub
Git & git hub
PreetikaKanojia
 
Getting started With GIT
Getting started With GITGetting started With GIT
Getting started With GIT
GhadiAlGhosh
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1
Omar Fathy
 
Git'in on Windows
Git'in on WindowsGit'in on Windows
Git'in on Windows
Stacy Vicknair
 
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
msohn
 
Git'in in 15
Git'in in 15Git'in in 15
Git'in in 15
Stacy Vicknair
 
Do You Get Git?
Do You Get Git? Do You Get Git?
Do You Get Git?
Prasid Pathak
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Wong Hoi Sing Edison
 
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Nico Meisenzahl
 

What's hot (20)

The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
 
Git kelvin
Git   kelvinGit   kelvin
Git kelvin
 
Git basics
Git basicsGit basics
Git basics
 
Git hub visualstudiocode
Git hub visualstudiocodeGit hub visualstudiocode
Git hub visualstudiocode
 
(Open Hack Night 2014) GitHub Tutorial
(Open Hack Night 2014) GitHub Tutorial(Open Hack Night 2014) GitHub Tutorial
(Open Hack Night 2014) GitHub Tutorial
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git hub
Git hubGit hub
Git hub
 
COSCUP Scouter: Face recognizer retrieves your Github contribution
COSCUP Scouter: Face recognizer retrieves your Github contributionCOSCUP Scouter: Face recognizer retrieves your Github contribution
COSCUP Scouter: Face recognizer retrieves your Github contribution
 
Contributing to open source using Git
Contributing to open source using GitContributing to open source using Git
Contributing to open source using Git
 
Introduction to git and github
Introduction to git and githubIntroduction to git and github
Introduction to git and github
 
Git & git hub
Git & git hubGit & git hub
Git & git hub
 
Getting started With GIT
Getting started With GITGetting started With GIT
Getting started With GIT
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1
 
Git'in on Windows
Git'in on WindowsGit'in on Windows
Git'in on Windows
 
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
 
Git'in in 15
Git'in in 15Git'in in 15
Git'in in 15
 
Do You Get Git?
Do You Get Git? Do You Get Git?
Do You Get Git?
 
Presentation1
Presentation1Presentation1
Presentation1
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
 
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
 

Similar to GitHub/git+Cmake+Clion

Git_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdfGit_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdf
AshokChakravarthy27
 
14 oct Git & GitHub.pptx
14 oct Git & GitHub.pptx14 oct Git & GitHub.pptx
14 oct Git & GitHub.pptx
GDSCGHRIETNagpur
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
Roy Clarkson
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
Gunnar Hillert
 
GDSC PCE Hacktoberfest 1.pptx
GDSC PCE Hacktoberfest 1.pptxGDSC PCE Hacktoberfest 1.pptx
GDSC PCE Hacktoberfest 1.pptx
AnandMenon54
 
Hacktoberfest GDSC Pillai College of Engineering
Hacktoberfest GDSC Pillai College of EngineeringHacktoberfest GDSC Pillai College of Engineering
Hacktoberfest GDSC Pillai College of Engineering
AnandMenon54
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
Luca Milanesio
 
Advance workshop on git
Advance workshop on gitAdvance workshop on git
Advance workshop on git
Himanshu Agrawal
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
Cuong Ngo
 
Copy of GDSC Hacktober.pptx
Copy of GDSC Hacktober.pptxCopy of GDSC Hacktober.pptx
Copy of GDSC Hacktober.pptx
UtkarshaChaudhari7
 
Mini git tutorial
Mini git tutorialMini git tutorial
Mini git tutorial
Cristian Lucchesi
 
Digital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesDigital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: Files
Massimo Menichinelli
 
How I become Go GDE
How I become Go GDEHow I become Go GDE
How I become Go GDE
Evan Lin
 
database.pptx
database.pptxdatabase.pptx
database.pptx
Database110
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
Tim Osborn
 
GIT-FirstPart.ppt
GIT-FirstPart.pptGIT-FirstPart.ppt
GIT-FirstPart.ppt
ssusered2ec2
 
Sourcing by Source Code: Find the Code and You Find the Developer
Sourcing by Source Code: Find the Code and You Find the DeveloperSourcing by Source Code: Find the Code and You Find the Developer
Sourcing by Source Code: Find the Code and You Find the Developer
RecruitingDaily.com LLC
 
Git in the European Parliament
Git in the European ParliamentGit in the European Parliament
Git in the European Parliament
Jean-Pol Landrain
 
Git & GitHub N00bs
Git & GitHub N00bsGit & GitHub N00bs
Git & GitHub N00bs
YasserElsnbary
 
Introduction to git, an efficient distributed version control system
Introduction to git, an efficient distributed version control systemIntroduction to git, an efficient distributed version control system
Introduction to git, an efficient distributed version control system
AlbanLevy
 

Similar to GitHub/git+Cmake+Clion (20)

Git_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdfGit_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdf
 
14 oct Git & GitHub.pptx
14 oct Git & GitHub.pptx14 oct Git & GitHub.pptx
14 oct Git & GitHub.pptx
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
GDSC PCE Hacktoberfest 1.pptx
GDSC PCE Hacktoberfest 1.pptxGDSC PCE Hacktoberfest 1.pptx
GDSC PCE Hacktoberfest 1.pptx
 
Hacktoberfest GDSC Pillai College of Engineering
Hacktoberfest GDSC Pillai College of EngineeringHacktoberfest GDSC Pillai College of Engineering
Hacktoberfest GDSC Pillai College of Engineering
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
Advance workshop on git
Advance workshop on gitAdvance workshop on git
Advance workshop on git
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
Copy of GDSC Hacktober.pptx
Copy of GDSC Hacktober.pptxCopy of GDSC Hacktober.pptx
Copy of GDSC Hacktober.pptx
 
Mini git tutorial
Mini git tutorialMini git tutorial
Mini git tutorial
 
Digital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesDigital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: Files
 
How I become Go GDE
How I become Go GDEHow I become Go GDE
How I become Go GDE
 
database.pptx
database.pptxdatabase.pptx
database.pptx
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
GIT-FirstPart.ppt
GIT-FirstPart.pptGIT-FirstPart.ppt
GIT-FirstPart.ppt
 
Sourcing by Source Code: Find the Code and You Find the Developer
Sourcing by Source Code: Find the Code and You Find the DeveloperSourcing by Source Code: Find the Code and You Find the Developer
Sourcing by Source Code: Find the Code and You Find the Developer
 
Git in the European Parliament
Git in the European ParliamentGit in the European Parliament
Git in the European Parliament
 
Git & GitHub N00bs
Git & GitHub N00bsGit & GitHub N00bs
Git & GitHub N00bs
 
Introduction to git, an efficient distributed version control system
Introduction to git, an efficient distributed version control systemIntroduction to git, an efficient distributed version control system
Introduction to git, an efficient distributed version control system
 

More from Igor Khokhryakov

X-Environment Metadata Management
X-Environment Metadata ManagementX-Environment Metadata Management
X-Environment Metadata Management
Igor Khokhryakov
 
Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...
Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...
Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...
Igor Khokhryakov
 
Waltz-Controls presentation for Canadian Light Source
Waltz-Controls presentation for Canadian Light SourceWaltz-Controls presentation for Canadian Light Source
Waltz-Controls presentation for Canadian Light Source
Igor Khokhryakov
 
Waltz presentation at ASU and ANL
Waltz presentation at ASU and ANLWaltz presentation at ASU and ANL
Waltz presentation at ASU and ANL
Igor Khokhryakov
 
TangoWebapp insights
TangoWebapp insightsTangoWebapp insights
TangoWebapp insights
Igor Khokhryakov
 
1st Tango Users Group Russia meeting, overview
1st Tango Users Group Russia meeting, overview1st Tango Users Group Russia meeting, overview
1st Tango Users Group Russia meeting, overview
Igor Khokhryakov
 
Applying Enterprise technologies in Science
Applying Enterprise technologies in ScienceApplying Enterprise technologies in Science
Applying Enterprise technologies in Science
Igor Khokhryakov
 

More from Igor Khokhryakov (7)

X-Environment Metadata Management
X-Environment Metadata ManagementX-Environment Metadata Management
X-Environment Metadata Management
 
Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...
Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...
Observability of the SCADA Systems Using Elastic APM, Reactive Streams and As...
 
Waltz-Controls presentation for Canadian Light Source
Waltz-Controls presentation for Canadian Light SourceWaltz-Controls presentation for Canadian Light Source
Waltz-Controls presentation for Canadian Light Source
 
Waltz presentation at ASU and ANL
Waltz presentation at ASU and ANLWaltz presentation at ASU and ANL
Waltz presentation at ASU and ANL
 
TangoWebapp insights
TangoWebapp insightsTangoWebapp insights
TangoWebapp insights
 
1st Tango Users Group Russia meeting, overview
1st Tango Users Group Russia meeting, overview1st Tango Users Group Russia meeting, overview
1st Tango Users Group Russia meeting, overview
 
Applying Enterprise technologies in Science
Applying Enterprise technologies in ScienceApplying Enterprise technologies in Science
Applying Enterprise technologies in Science
 

Recently uploaded

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 

Recently uploaded (20)

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 

GitHub/git+Cmake+Clion

  • 1. GitHub/git +GitHub/git + CMake +CMake + CLionCLion
  • 3. 25.04.17 Igor Khokhriakov 3 Git “Git was created by Linus Torvalds in 2005 for development of the Linux kernel, with other kernel developers contributing to its initial development.” Wikipedia.org According to StackOverflow survey 2017 ~70% of developers are using git
  • 4. 25.04.17 Igor Khokhriakov 4 Key points about Git ● Strong support for non-linear development – a core assumption is that a change will be merged more often than it is written ● Distributed development – Git gives each developer a local copy of the full development history ● Efficient handling of large projects – an order of magnitude faster than some version control systems
  • 6. 25.04.17 Igor Khokhriakov 6 GitHub ● Hosting that provides git service ● Suddenly became a central feature in git ecosystem – My personal experience is that back in 2012 they did not have even in-line commit comment (vs bitbucket)
  • 7. 25.04.17 Igor Khokhriakov 7 Summary SourceForge/svn = GitHub/git aka Hosting/repository SourceForge/svn ≠ GitHub/git GitHub provides tons of features and integrations: travis, appveyor, read-the- docs, ...
  • 9. 25.04.17 Igor Khokhriakov 9 Git concept ● Simple case: one user; direct access to the remote repo – Create new file:
  • 10. 25.04.17 Igor Khokhriakov 10 Git concept – Working with branches: ● $> git branch my_branch ● $> git checkout my_branch – Shortcut: git checkout -b my_branch ● Do stuff ● $> git push -u my_branch origin – Merging branch into the master ● $> git checkout master ● $> git merge my_branch
  • 11. 25.04.17 Igor Khokhriakov 11 Git cheat sheet http://files.zeroturnaround.com/pdf/zt_git_cheat_sheet.pdf
  • 13. 25.04.17 Igor Khokhriakov 13 GitHub concept ● Contributing via Pull-Request (PR)
  • 14. 25.04.17 Igor Khokhriakov 14 GitHub concept – Creating a Pull-Request ● GitHub fork ● $> git clone … ● $> git checkout -b feature ● Do stuff ● $> git push ● GitHub create a Pull-Request ● Do more pushes
  • 15. 25.04.17 Igor Khokhriakov 15 GitHub concept – Rebasing onto master ● $> git pull –rebase upstream master ● $> git push – Closing the PR ● maintainer(s) approval(s) + tests passed ● GitHub megre PR ● $> git branch -d feature ● Sync fork master (origin) with upstream master – $> git checkout master; git pull upstream master
  • 17. 25.04.17 Igor Khokhriakov 17 https://www.atlassian.com/git/tutorials
  • 18. 25.04.17 Igor Khokhriakov 18 Keep in mind ● Git is very powerful and flexible – github.com/tango-controls/cppTango ● Merged 4 repositories ● Preserved commits history ● Preserved branches Do not hesitate to google the most astounding ideas aka How can I do X in git
  • 20. 25.04.17 Igor Khokhriakov 20 CMake ● Cross-platform build automatization tool ● Declarative scripting language for managing native projects ● Dependency management (via pkg-config or cmake modules) ● Testing ● Packaging
  • 21. 25.04.17 Igor Khokhriakov 21 CmakeLists.txt
  • 22. 25.04.17 Igor Khokhriakov 22 Build using cmake ● $> mkdir build ● $> cd build ● $> cmake .. ● $> make ● $> make install … better use IDE like CLion
  • 23. 25.04.17 Igor Khokhriakov 23 CMake guide lines ● Use the following directory structure: – configure – include – docs – src – test ● Use dedicated project when configuration is totally different from the root project
  • 24. 25.04.17 Igor Khokhriakov 24 CMake guide lines ● Split complex project into modules – add_library(my_module OBJECT …) ● Use CTest for integration testing. Unit tests must be independent ● Use CPack to generate packages and custom targets to deploy them – add_custom_target(COMMAND curl ...)
  • 25. 25.04.17 Igor Khokhriakov 25 Where get help? ● No good book :( ● Find some open-source project and explore it – https://github.com/pni-libraries/libpnicore – https://github.com/ufo-kit/ufo-core ● CMake itself... for gurus
  • 28. 25.04.17 Igor Khokhriakov 28 Agenda ● CMake support ● Navigation ● Refactoring ● Git integration ● Debugging ● Creating live templates
  • 29. 25.04.17 Igor Khokhriakov 29 CMake support File → settings OR ctrl+alt+s
  • 30. 25.04.17 Igor Khokhriakov 30 CMake support ● Run targets
  • 31. 25.04.17 Igor Khokhriakov 31 Navigation ● Find class: ctrl+n ● Find file: ctrl+shift+n ● Subclasses: ● Implementation &Override:
  • 32. 25.04.17 Igor Khokhriakov 32 Navigation ● Method lookup: ctrl+F12 OR structure tab ● Code navigation: ctrl+click on an item ● Find usages: Alt+F7
  • 33. 25.04.17 Igor Khokhriakov 33 Refactoring ● Rename: shift+F6 ● Change signature: ctrl+F6 ● Move entity: F6 ● Generate definitions: ctrl+shift+d ● Generate … : alt+insert ● Generate constructor that matches super
  • 34. 25.04.17 Igor Khokhriakov 34 Refactoring ● Extract method: highlight and ctrl+alt+m ● Extract variable: highlight and ctrl+alt+v ● Extract …: Refactoring → Extract – Constant – Parameter – Define – Typedef – Superclass – Subclass
  • 35. 25.04.17 Igor Khokhriakov 35 Git integration ● Compare with branch... ● Make pull request ● Resolve conflicts ● Rebase ● Etc: VCS → Git; context menu → Git ● Local changes&history:
  • 37. 25.04.17 Igor Khokhriakov 37 Live template creation
  • 38. 25.04.17 Igor Khokhriakov 38 https://www.jetbrains.com/help/clion/2017.1/reference.html

Editor's Notes

  1. $> git init $> git pull === $> git fetch & git merge $> git remote -v
  2. Switch to browser
  3. cppTango test/test_suite is a dedicated project
  4. Live template variables: https://www.jetbrains.com/help/clion/2017.1/creating-and-editing-template-variables.html