git-issue
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 490 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/46985 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Data managementDisintegrationGoodness of fitComputer animation
00:17
Physical systemRepository (publishing)DatabaseData managementServer (computing)TrailJSONXMLComputer animation
00:36
Installation artRepository (publishing)Computer animation
00:58
Connected spaceInternetworkingMathematicsPlanningComputer animation
01:23
Data structureRepository (publishing)Computer fileFilter <Stochastik>Text editorComputer animation
01:45
Link (knot theory)Execution unitHydraulic jumpServer (computing)Interface (computing)Front and back endsSource code
02:05
Computer fileOrder (biology)Computer animation
02:20
AdditionDatabasePhysical systemMereologyOrder (biology)File formatCodeGoogolHeat transfer
02:48
Installation artCompilation albumCloningText editor10 (number)TrailScalable Coherent InterfaceMIDICivil engineeringSign (mathematics)CountingNormed vector spaceNo free lunch in search and optimizationInformationExecution unitRepository (publishing)Demo (music)Directory serviceMathematicsLatent heatOrder (biology)Coefficient of determinationGodGame theoryTraffic reportingLine (geometry)Physical systemTorusTrailMultiplication signDatabaseRoutingData storage deviceRootCodeSubsetWeightUniform resource locatorText editorComputer fileComputer animationSource code
06:24
Complete metric spaceComplete metric spaceChainGoodness of fitMathematicsOrder (biology)XML
06:36
Order (biology)File formatMathematicsSelf-organizationElectronic mailing listProjective planeSource codeOnline helpUML
06:52
Online helpProper mapWeb pageSource codeElectronic mailing listProjective planeComputer animation
07:09
Commitment schemeGoogolConfiguration spaceTemplate (C++)CodeDescriptive statisticsHash functionDirectory serviceGraphical user interfaceFreewarePresentation of a groupSynchronizationComputer animation
08:25
Process (computing)MereologyLogic gatePhysical systemWindowRight angleDivisorAbstractionRevision controlMultitier architectureSource codeGoodness of fitMathematicsNumberMessage passingPairwise comparisonMultiplication signEvent horizonPoint (geometry)Execution unitTrailFreewareComputer fileLine (geometry)Correspondence (mathematics)Electronic mailing listSoftware bugRepository (publishing)System callData structurePlug-in (computing)Latent heatInterface (computing)Gastropod shellDisk read-and-write headHookingCodeCommitment schemeScripting languageMechanism designComputer animation
14:19
Point cloudOpen sourceFacebook
Transcript: English(auto-generated)
00:05
So now we've got the next talk on Git issue from Diamidis Spinelli's Thank you. Hi, good morning Why are we here? Why would we want to run Git issue? I'll give you six reasons why it issues the best things since sliced bread
00:23
First of all, it's an issue management System so a back tracker that doesn't need any sophisticated infrastructure any system running behind it You don't need a database a server that needs to be specially configured anything like that It's very easy to install as I will show you just clone the repository and you run make
00:42
Install and there you have it It's decentralized so anybody anywhere in the planet can create an issue can comment on it can change its status at the milestone at the assign it to somebody and things get Merged together in the central repository How does this happen? Of course, it uses it as its
01:04
backend and as an advantage because it's decentralized is that you can use it anywhere even if you don't have internet connectivity So on the plane, I read somebody complaining a few days ago that they train they were on didn't have Wi-Fi You can still get use the Git issue and then you push the changes or you pull the changes that have been made
01:24
It's also transparent so the files that it uses the structure is Documented and it's available so you can use your favorite tools. You can grab through issues You can find and select them. You can apply filters to it You can even use your editor if you are brave enough to change things on the fly in the repository
01:42
That's absolutely allowed and then you can push the issues back in As you will appreciate it uses a git as a backend So all the goodies we have with git still work here the credentials that you have the server that you are using The commands that you know, the many years you invested to learn it's arcane interface. Everything is there to be used
02:06
Also, it uses the Unix command-line tools philosophy if you don't not sure why this is good There is a MOOC that I'll be starting on in March go there in order to find out But the truth is that you can use all the tools that you know on top of the files that it has
02:22
As an addition as part of the Google Summer of Code last year We're on the roses did amazing work and integrated into git issue The ability to pull issues from github and gitlab and also put push issues back there to the issue Database of these two systems so you can also use git issue in order to transfer
02:40
Issues from one system to the other or ensure that your issues are in a transparent format that you can use and control on your own Let Me give you a brief demo of how it works So to install it you just clone the repository and then you run install or as a
03:08
Root user in order to copy the file to the system directors or if you don't have root access you set the prefix to your home directory in order to Install them in your home directory With git issue in it you create a new
03:22
Repository, let's create a new issue can do the command line But by specifying the subject line or you can use git issue new and net door will pop up Now you see you have two issues here can use git issue comment to add the comment on the specific issue again with my editor
03:41
Or I can tag it with a specific tag and it tells me that it has tagged it I can tag another tag here if I now remove a Tag I can use the minus R option. I can assign it to somebody using again the issue
04:00
Code as a to identify it Add another watcher here Here I list the specific issue and now here is the magic I can add a remote origin to this issue database and now I can use a
04:23
Push in order to move my changes all upstream assume now somebody else is using git issue they can clone this repository and Then if they list the issues the issues are back at the host that they were using
04:43
They can create another issue there and create. I'm specifying the subject line here and Push the changes back up to that the repository that is shared between these two people There is a show command in order to see what an issue contains Or a specific issue here a longer one. I can again pull issues from a remote at
05:17
Least and I will see a new issue appearing here in the other host
05:21
Now, let's try the another example. I will now get issues from github issues So I initialize a new issue tracker with git issue in it and now specify that I want to import issues from github Using this URL and to the imports existing github issue. So issues that github is tracking I can see them here. I
05:44
can see a specific issue who has been assigned tags and so on all the things that github issues support I Can change things again, so add the milestone for example or Change the due date for github
06:01
There are some things that github supports and some things that github supports we have the superset of the two. I Can close an issue and then I can export the issues back into github issues or github I will need to have the credentials especially if I want to pull more than a few issues
06:21
So this is how the system appears in practice You also get some goodies so subcommand auto-completion or sha auto-completion More goodies you can use the git commands that you love and know so for example rebase in order to directly change things
06:45
Everything change you made is recorded as a git commit You can dump an issue in JSON format to process it in another way and there's a log of the issues that are there For help there is of course a List of all the commands available Automatically generated from the source code so that it's always complete and something I consider important
07:05
We should all try in our projects a nine page manual proper Unix manual page How does it work internally? I will finish with that. So internally what you see is a dot issues Directory and inside it there are templates for the description and comment
07:21
you can modify it and commit them and all your colleagues will share them and use their own and issues directory and for every issue You have the sha hash which is created through the hash of the git commit that creates the issue So, you know, it's almost impossible to have a duplication here and for every issue you have the description the tags the milestone the comments and
07:43
Other things that are associated with that issue comments is a director And again, each comment is associated with the sha hash of the commit commit that created that issue The configuration folder and details about the import so that you can stay in sync and
08:00
Push and pull the things that are exactly needed from github or gitlab We will hopefully be running google summer of code again next year so if you have any cool ideas you want to add or if you want to work on perhaps a graphical user interface if you Feel to don't feel sure about always using the command line. Feel free to look for it up and apply
08:23
This brings me to the end of this presentation. Thank you very much Is there any get parts get specific part in it
08:57
It's written in shell as a shell script full of git commands
09:02
So you have to go and replace every git command with the corresponding other version control system Understand the question is if there are git specific parts in it, right? Yes, so it's a heavily get Dependent you would have to add an abstraction layer to interface between different systems but there are text files and they get specific things that are done are
09:24
Push pull commit so there are few the rest are things that are Available in every system you think you commit files in the structure that I showed Yes
09:48
Okay, what happens with the conflicts in general? The idea is that they the same thing that happens with the with the when you pull data from a Depository you get the conflict and you have to resolve it now if you go upstreams
10:04
And you push things up things might get modified with the truth source of truth that you have because a GitHub doesn't have a way to do this atomically So a proper process would be to pull things from to import the issues again
10:21
Resolve any conflicts you can do that commit them and then push and hopefully nobody has done that in that small window Yes
10:49
Right. The question is whether we can have the numbers of a github issues I think this is something that can be easily done should be three lines of code It's a very good idea if you put it up in an issue
11:03
Hack it in the afternoon. I think you had the two questions, right? Yes, how could we automate the github
11:32
Process so that when things change on github automatically mirrored here. I would build on top on it on top of it So at some end point that would and listen for those events and then invoke the command
11:44
It's not there, but I don't think it should be difficult to do Yes, have a look with that in the kitchen. No, not yet Yes, I wanted to ask if you
12:03
Will try to push it upstream. I mean to get source Directly like be part of git So the question is if I have tried to push it upstream be part of git if I've communed of git or git hub Yeah, I mean git like be part of the git not just additional thing but just part of the git
12:25
The question is if I've tried to push it upstream to git No, I haven't because the plug-in interface of git is beautiful And maybe I should it's an interesting idea. Yeah, so please try to push it upstream Okay. Thank you for the suggestion if anyone wants to share experience of how to do that. Please talk to me
12:49
Hi, how does it compare to bugs everywhere? How does it compare to bugs everywhere I have a list of at the end of the readme file
13:01
I have a list of bugs everywhere is another system that works in the same way I found another five systems around the same idea at the end of the readme file I have short one-liners that have the comparisons I don't remember exactly for each system how it compares off the top of my head Yes
13:26
Is there a way to close an issue by a commit message or would add a commit hook again? In git issue to issue another git command That would close the issue So it's a hook plus issuing the two commands that would close the issue when it grabs for the issue number
13:44
So you don't have precrafted hook to put it. It's not precrafted now It means that we'll have to have to create a plug-in mechanism for git issue but it's an interesting idea and very I'm very encouraged with all these ideas and things that can be built on top of it That's the beauty of Unix tools and the Unix philosophy
14:05
Any other questions? Thank you very much again