Automatize Your Git Workflow
General:
Hi XDA,
I created a Windows batch script that helps you to automatize your Git workflow. This batch script includes the most important git commands, new ones will be added with time.
Additionally, I added selfmade git workflows (currently 2) which runs serveral commands in one row. Suggestions for new ones are welcome.
At the moment there's just a Windows version available. Since I don't have any Linux experience, it might be great if someone could port it.
NOTE: Instead of using the Dropbox download link you can always get the files from GitHub. "Master" brench is always the newest one.
Click to expand...
Click to collapse
Functions:
Init repo
Clone Git
Add repo
Get status
Get changes of tracked files
Add file(s) to staging area
Commit file(s)
Change last commit
Get commit log
Get commit log of specified file
Push changes
Pull changes
Fetch changes
Remote info
List remotes
Add remote repo
Discard all local changes
Discard local changes in file
List branches
Switch HEAD branch
Create branch
Delete branch
Push branch
Add tags
Merge branch into HEAD
Rebase HEAD onto branch
Custom made workflows (2)
Click to expand...
Click to collapse
Windows Download:
Download
Click to expand...
Click to collapse
GitAutomating on GitHub:
MyGithub
Click to expand...
Click to collapse
Newest Version:
25.09.2016: v1.1
Click to expand...
Click to collapse
Screenshots in "Screenshots" section available
Please report bugs and give feedback
XDA:DevDB Information
Git Automating, Tool/Utility for all devices (see above for details)
Contributors
Lars124
Version Information
Status: Testing
Created 2016-09-19
Last Updated 2016-09-19
Changelog:
25.09.2016:
- Added "tag" function
- Added "own command" function
- Other minor imporvements
19.09.2016:
- Initial Release
Click to expand...
Click to collapse
Update with new functions comes this week!
Sent from my Moto G 2014 using Tapatalk
UPDATE v1.1 is online
25.09.2016:
- Added "tag" function
- Added "own command" function
- Other minor imporvements
Related
Welcome to Kernel build guide.
WITH THIS METHOD YOU WILL GET installable zip for your kernel.
My english is not best but i think you all will understand this guide . I write this guide because i dont own S4 Mini anymore and unfortunally i cant build kernels or roms anymore for s4 mini.
this is my kernel build method. you will have everything (tools) for build a kernel for s4 mini device. if you have questions, then ask it here. this kernel method is working only aosp based kernel (not tested for tw kernel but it may also work but you need ramdisk of tw kernel)
be sure you have packages installed for build something like this, or edit or clone a github source. look at cm kernel build guides.
1. Download build-s4-mini-kernel.zip [here]
extract it to root of your user directory (my is /home/proxuser/)
2. We need toolchain 4.7.4 by Christopher83 original thread [here]
download
arm-unknown-linux-gnueabi-linaro_4.7.4-2013.07-build_2013_07_12.tar.bz2
extract arm-unknown-linux-gnueabi-linaro_4.7.4-2013.07 folder to toolchains folder (home/yourusername/toolchains) and name it linaro_4.7.4
Download Build scripts from my source here
download:
- abooteur_3g.img
- abooteur_lte.img
- build_all.sh
- build_eur_3g.sh
- build_eur_lte.sh
- build_master.sh
- mkbootfs
- mkbootimg
and put them to your kernel folder "root folder of your kernel".
if you want clone a kernel source: example CyanogenMod's cm-10.2 kernel then
open Terminal, and be in user root folder /home/yourusername (just open terminal and your there)
Code:
git clone https://github.com/CyanogenMod/android_kernel_samsung_msm8930-common.git -b cm-10.2
if you want clone my Kartal kernel then
Code:
git clone https://github.com/proxuser/kartal.git -b master
it will named "if you cloned cyanogenmod kernel android_kernel_samsung_msm8930-common" if you clone my kernel then it will named "kartal"
you can rename kernel folder, its not problem.
if you want change of kernel name(example kartal), then go yourkernel/arch/arm/configs/kartal_defconfig and edit CONFIG_LOCALVERSION="-Kartal" change only "Kartal" for your kernel's name. if you want change defconfig example "kartal_defconfig" to "yourkernel_defconfig" then you need change it in build_master.sh too that it builds with your config file.
if you downloaded your kernel source and your build tools are there then lets start
Open terminal
type
Code:
cd yourkernelfolder
for build both phones i9195 & i9190
Code:
./build_all.sh
if it denies access for build_all.sh then type
Code:
chmod 777 build_all.sh
you can give all files access with this command.
for build i9195
Code:
./build_eur_lte.sh
for build i9190
Code:
./build_eur_3g.sh
finally it will start building. it will done within 4-5 min. depend your pc speed.
after it builds succesfully, your kernel will be in your /home/yourusername/Packages/ folder
IF YOU WANT add new changes from CM or other kernel to your kernel
then open Terminal
cd yourkernelfolder
git remote add CyanogenMod https://github.com/CyanogenMod/android_kernel_samsung_msm8930-common.git
git fetch CyanogenMod
this will fetch CyanogenMod kernel changes but it will not apply to your kernel. you will add changes step by step yourself. copy commits SHA from CyanogenMod kernel and
open Terminal
Code:
git cherry-pick 2108e6c3109ae126590a81876145a1f17d6771b5
if you get success on pick a commit then you will get a message like this
Code:
[email protected]:~/kernel$ git cherry-pick a41564437a0eb910d0347d274456f3f0116c3c77
[master 5dd0694] net-fixes: flow_dissector: prevent an infinite loop (CVE-2013-4348)
Author: Eric Dumazet <[email protected]>
1 file changed, 3 insertions(+), 1 deletion(-)
if you get an error like this
Code:
[email protected]:~/kernel$ git cherry-pick 63ee35463ea3ec5d4e8f2c60ad0f70abd8463733
error: could not apply 63ee354... ARM: 7809/1: perf: fix event validation for software group leaders
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
thats mean it is not applied to your files. just type "git status" to see what files are not modified.
then type: git reset --hard for go to your last commit.
this will make changes of error commit back.
Work always with git because with this way you can save a lot your changes and you can restore anything anytime.
Credits:
XDA Community
Christopher83 for toolchain
ktoonsez for build scripts
arco68 for s4 mini kernel development
cyanogenmod
I really appreciate these posts! :good:
wonderful. thank you very much :good:
Srry wrong topik..
I have built your kernel successfully, but after flashing the .zip the device is stuck on the "Samsung Galaxy S4mini" Bootscreen.
I tested it with the this two roms:
- cm-10.2-20131102-SNAPSHOT-M1-serranoltexx
- CARBON-JB-UNOFFICIAL-20131026-1327-serranoltexx
Do you have any idea why it's not working?
Edit: I used arcos source and it is working fine now
@junkyde
Can't get the stock kartal kernel to build.
What for OS are you running in your virtual box? ubuntu? 86x or 64x?
Did you install any other buildtools?
there isn't a stock kartal kernel. kartal kernel is aosp. I am using Linux Mint 15 in a 64bit version on Virtual Box.
Ps: I had also my troubles with ubuntu x86 and x64, thats why I switched.
junkyde said:
there isn't a stock kartal kernel. kartal kernel is aosp. I am using Linux Mint 15 in a 64bit version on Virtual Box.
Ps: I had also my troubles with ubuntu x86 and x64, thats why I switched.
Click to expand...
Click to collapse
Thanks for you reply!
With "stock" I meant: without changing anything....
I will try mint 15 64bit with xfce!
you can also take a look into this tutorial: http://forum.xda-developers.com/showthread.php?t=1748297
junkyde said:
you can also take a look into this tutorial: http://forum.xda-developers.com/showthread.php?t=1748297
Click to expand...
Click to collapse
Got it working under Ubuntu 12.04 64bit.
Had some troubles because mkboofs and mkbootimg could not be found.
After installing : "sudo apt-get install ia32-libs" everything was fine
Now I will try to compile the 10,1 kernel from source, lets see how that goes..
Keon91 said:
After installing : "sudo apt-get install ia32-libs" everything was fine.
Click to expand...
Click to collapse
Yes I know, that this is required, when you are working with a 64bit system. But I couldn't get this installed in Ubuntu. On Mint everything worked fine. But I am glad you made it
@junkyde
After some trial and error I've succesfully compiled the cm 10.1 kernel.
Can you give me any direction on how to compile the custom liblights?
Do I need to download the full cm 10.1 source?
I used proxusers tutorial on how to build carbon rom. Downloaded full rom, modified lights.c and compiled whole rom.
Can someone build a kernel for the i257m
It would be nice if there was some kernel mods for this. especially just a near stock one with insecure root permissions.
The source is out if anyone was wondering
opensource.samsung.com/reception/receptionSub.do?method=search&searchValue=i257
IF YOU WANT add new changes from CM or other kernel to your kernel ...
Click to expand...
Click to collapse
What do you mean by this? Add changes that cm has done after you last downloaded them or changes you want to do to customize the kernel?
git cherry-pick 2108e6c3109ae126590a81876145a1f17d6771b5
Click to expand...
Click to collapse
What does this means and where do you get that ID? I would think that after fetching the changes from the source it will have been added to all the files you have already downloaded. Thanks for the tutorial!
---------- Post added at 05:58 PM ---------- Previous post was at 05:55 PM ----------
junkyde said:
I used proxusers tutorial on how to build carbon rom. Downloaded full rom, modified lights.c and compiled whole rom.
Click to expand...
Click to collapse
junkyde here you don't mention lights.c, aren't they needed for 10.1? http://forum.xda-developers.com/showpost.php?p=49958578&postcount=215
yes you need custom liblights for BLN, but since I have compiled them already, you can use the one from inside the .zip of my kernel.
junkyde said:
yes you need custom liblights for BLN, but since I have compiled them already, you can use the one from inside the .zip of my kernel.
Click to expand...
Click to collapse
Doesn't it matter that you compiled it for 10.2? Also, where is the source for liblights?
proxuser said:
Welcome to Kernel build guide.
WITH THIS METHOD YOU WILL GET installable zip for your kernel.
Click to expand...
Click to collapse
On ubuntu I got this message after the process took a while:
KERNEL DID NOT BUILD! no zImage exist
Click to expand...
Click to collapse
At some point in the process it printed:
[email protected]:~/Development/SGS4Mini/build-s4-mini-kernel/android_kernel_samsung_msm8930-common$ ./build_all.sh
...
...
...
rm: cannot remove `/home/rpgdev/Development/SGS4Mini/build-s4-mini-kernel/Packages/AOSP/zImage': No such file or directory
rm: cannot remove `arch/arm/boot/zImage': No such file or directory
Make the kernel
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
***
*** Can't find default configuration "arch/arm/configs/kartal_defconfig"!
***
...
...
...
Click to expand...
Click to collapse
And if I go there I indeed can't find the zImage, where can I get it?
PS: Used the characters "..." to denote abridgment of the compilation verbose printout.
Forgot to add, I'm downloaded the cyanogenmod kernel from build 10.1 since that's the cyanogenmod version I use and for the one I need to make this mod, could this be the cause of the problem? Googling it seems that the kernel version you use may need a specific toolchain version.
rpgdev said:
Doesn't it matter that you compiled it for 10.2? Also, where is the source for liblights?
Click to expand...
Click to collapse
I think it doesn't matter, I used the same for different roms and it worked. Source is as I said the lights.c file inside of the rom.
rpgdev said:
Can't find default configuration "arch/arm/configs/kartal_defconfig"!
Click to expand...
Click to collapse
This is why zImage can't be build.
junkyde said:
I think it doesn't matter, I used the same for different roms and it worked. Source is as I said the lights.c file inside of the rom.
This is why zImage can't be build.
Click to expand...
Click to collapse
I'm not using kartal but the one downloaded from cm. Thought the instructions were generic and the script took into account wether you had downloaded the kernel from cm or kartal :/, I did go inside the directory with all the defconfig files, how do I know which one should I point it to on cm-10.1 kernel?
Regarding the lights.c then I just have to include that library on the same directory you put it in your kernel AND add the changes you pointed to here http://forum.xda-developers.com/showpost.php?p=49958578&postcount=215 and I would be set?
Thanks!
SO AS OF NOW WE HAVE GUIDES ABOUT HOW TO MAKE A KERNEL , ROM FROM SOURCE CODES..THIS GUIDE WILL TALK ABOUT PUSHING THE DEVICE TREE OR KERNEL TREE TO YOUR GITHUB ACCOUNT ...THIS IS A BEGINNER'S GUIDE IN THIS GUIDE I WILL ASSUME THAT UR BUILDING CM 11
STEP1:- CREATE A GITHUB ACCOUNT
STEP 2 :- CREATE A REPOSITORY BY CLICKING THE "+" beside ur user name and name it "android_device_samsung_i9082"
STEP 3 :- in the terminal navigate to the device folder
Code:
cd cm11/device/samsung/i9082
STEP 4 : WE ADD THE REPOSITORY TO WHICH WE HAVE TO PUSH THE FILES TO
Code:
git remote add cm https://github.com/username/android_device_samsung_i9082.git
STEP 5: we create a branch
Code:
git branch cm-11.0
Code:
git checkout cm-11.0
STEP6: WE PUSH THE THE TREE
Code:
git push -u cm cm-11.0
THIS GUIDE IS A WIP ... I WILL UPDATE IT SOON WITH PICTURES ..TO MAKE UL UNDERSTAND BETTER
CREDITS
1) @k2wl
2) help.github.com
3) @jackeagle
reserved
It would be pretty nice if you can add in on how to cherry-pick and git log --graph.Anyways,this guide is very detailed and useful overall and have an awesome say ahead [emoji1][emoji1][emoji106]
Sent from Planet Phaser
The-Grape said:
It would be pretty nice if you can add in on how to cherry-pick and git log --graph.Anyways,this guide is very detailed and useful overall and have an awesome say ahead [emoji1][emoji1][emoji106]
Sent from Planet Phaser
Click to expand...
Click to collapse
Yea sure ... As u saw .. This guide is a wip .. I will add pictures and more .. Fr users to get a better idea of how its done
rutvikrvr said:
Yea sure ... As u saw .. This guide is a wip .. I will add pictures and more .. Fr users to get a better idea of how its done
Click to expand...
Click to collapse
Thanks a lot
[GUIDE]Git Advanced Methods
Sometimes,you might be wondering how can i update the device tree without deleting my current device tree but through applying the latest changes
Well today i will teach you a new function call cherry-picking.This function is one of the most known features of git as it provides simple and easy copy-pasting job for you
First of all,add the remote first.Note:The hello is the main remote for this link
Code:
git remote add name url
eg: git remote add hello https://github.com/AOGP/android_packages_apps_Lightbulb.git
Second,fetch the remote
Code:
git fetch name
eg: git fetch hello
Thirdly,once finish fetching.Copy the commit id from github
Code:
git cherry-pick SHA-1/Commit ID
eg: git cherry-pick a7d0c5fc6df49a07855ccb36fb22fdaf321e20ba
If you faced any errors,solve them by typing and then see the red color files name in the terminal and fix them by comparing between <<<<<<<HEAD
Code:
git status
Once done solving all the errors,push the commit to github to keep the authorship of the commit as it is rude to just use their work and put yourself as author
Code:
git push [name of the remote] [your repository branch]
eg: git push origin master
guide updated in compliance with authorship of commits
As I get more into android development for the Nexus 6 I have yet to figure out how to update to the latest android build while leaving my local changes. So for example I am working on 5.0.0 and made changes. Now 5.0.2 is out I want to update to that build. The only I have found is going a repo init but to my knowledge this wipes out your changes. Is there a way to switch and merge your local changes?
Thanks in advance
http://gitref.org/
DSA said:
http://gitref.org/
Click to expand...
Click to collapse
So say I have a change in every git repo, would doing those commands through a `repo forall` be the proper way?
sorry, use this one instead:
http://jonas.nitro.dk/git/quick-reference.html
just an example:
Code:
Branches:
git checkout branch Switch working tree to branch
-b branch Create branch before switching to it
git branch List local branches
git branch -f branch rev Overwrite existing branch, start from revision
git merge branch Merge changes from branch
or this:
https://confluence.atlassian.com/display/STASH/Basic+Git+commands
another similar example:
Branches
Create a new branch and switch to it: git checkout -b <branchname>
Switch from one branch to another: git checkout <branchname>
List all the branches in your repo, and also tell you what branch you're currently in: git branch
Delete the feature branch: git branch -d <branchname>
Push the branch to your remote repository, so others can use it: git push origin <branchname>
Push all branches to your remote repository: git push --all origin
Delete a branch on your remote repository: git push origin :<branchname
Click to expand...
Click to collapse
Hi I'm just forwarding it from zukfans.eu
Trying to find interested people who want to participate in the project
Device
https://emmaus.pro:3000/emmaus/android_device_zuk_z2pro
Kernel
https://emmaus.pro:3000/emmaus/android_kernel_zuk_msm8996
Vendor
https://emmaus.pro:3000/emmaus/android_vendor_zuk_z2pro
Use cm-14.1 branch to build.
These sources don't work. The cm14.1 branch is exactly the same as cm13.0. I've already tried telling Emmaus about the issue
Edit: sources are fixed now
Hello.
I'd like to help out but I'm new to ROM building. I have a Zuk Z2 (not pro, but afaik they're pretty much the same).
I'm an experienced web developer and a novice Android app developer.
Currently trying my first "repo sync" (using the cm-14.1 branch: repo init -u https://github.com/LineageOS/android.git -b cm-14.1).
I'll then try to set up the manifest that user harsha.pic (on zukfans) gave me today and use that one.
Any advice would be helpful.
MacLaughlin said:
Hi I'm just forwarding it from zukfans.eu
Trying to find interested people who want to participate in the project
Device
https://emmaus.pro:3000/emmaus/android_device_zuk_z2pro
Kernel
https://emmaus.pro:3000/emmaus/android_kernel_zuk_msm8996
Vendor
https://emmaus.pro:3000/emmaus/android_vendor_zuk_z2pro
Use cm-14.1 branch to build.
Click to expand...
Click to collapse
If you are intrested in it you can find something here! We're already working on it but it has a lot of bugs.
https://forum.xda-developers.com/zuk-z2-pro/development/lineageos-unofficial-emmaus-t3534678
Hello!
I've an older rom, that is marshmellow based. I wanted to know how to integrate security updates to it. It is a CM based AICP 11.1
Anyone know of any guides? Or Tools? I've looked through google and i dont get any answers, just what security updates do and so on.
Much appriciated, thank you.
KitsuneFoxy said:
Hello!
I've an older rom, that is marshmellow based. I wanted to know how to integrate security updates to it. It is a CM based AICP 11.1
Anyone know of any guides? Or Tools? I've looked through google and i dont get any answers, just what security updates do and so on.
Much appriciated, thank you.
Click to expand...
Click to collapse
First of all, AICP has already merged till July 2017 security patches in MM. Google has released security patches for MM till October 2017 (that was "android-6.0.1_r81") as seen here. So, afaik, for Marshmallow, you can get the security updates till r81 only.
Sync the AICP Rom repos from MM branch. I believe it is this: https://github.com/AICP/platform_manifest/tree/mm6.0
1. open the "default.xml" file and modify this line to
Code:
<default revision="refs/tags/android-6.0.1_r81"
2. you need to cd into .repo/manifests and commit the change
3. Now you can do a "repo sync --force-sync"
4. After it's done, open the AICP github page so you can see all the repos you'll upgrade.
Now you'll have to cd into each AICP repository (that's available on the AOSP page too ( https://android.googlesource.com/platform/ ).
You need to make sure you're on the default branch by running "git branch". If not, run "git checkout -b mm6.0" (replace "mm6.0" with whatever you think fit).
So, for example:
Code:
cd frameworks/base
git branch
git checkout -b mm6.0 (only if you're not on a branch, like I previously mentioned)
git remote add aosp [url]https://android.googlesource.com/platform/frameworks/base[/url]
git pull aosp android-6.0.1_r81
You'll now see the merging screen in the terminal if there aren't any conflicts. Press "Ctrl+O" then "Ctrl+X" and done.
You gotta do the same thing for all the other repositories, but with the correct aosp link for each of them.
Please note: as AICP tracks many repos from CM, Slim ROMs, DU and Omni, you'll have to make sure you are tracking appropriate branches for the repos used from those ROMs.
Hope this helps :highfive:
Nitin
Thank you, nitin! This rom is actually your edit, at least if i remember right from one of your threads. I'll have a go at getting the security patches installed on my nexus 4
Hi @nitin.chobhe
This is the rom i use. https://forum.xda-developers.com/nexus-4/development/rom-aicp-mako-t3274469
with the intergrated adaway/wakeblock/privacy and stuff.
using the OTA update doesnt give any updates, and there is no more mako listed on the AICP site.
What do i use to do the CD commands? Terminal in my android? Do i change the default xml on my phone or?
The only thing on this rom is Omni, as far as i can tell.
Unfortunately that wasnt made too clear what program i use to pull and stuff! Sorry.
KitsuneFoxy said:
Hi @nitin.chobhe
This is the rom i use. https://forum.xda-developers.com/nexus-4/development/rom-aicp-mako-t3274469
with the intergrated adaway/wakeblock/privacy and stuff.
using the OTA update doesnt give any updates, and there is no more mako listed on the AICP site.
What do i use to do the CD commands? Terminal in my android? Do i change the default xml on my phone or?
The only thing on this rom is Omni, as far as i can tell.
Unfortunately that wasnt made too clear what program i use to pull and stuff! Sorry.
Click to expand...
Click to collapse
You'll have to do a lot of reading and searching before trying to merge the security patches. It is not as easy as copy/ pasting some stuff/ files from server to your phone. Search on xda about how to build a ROM and when you build it successfully, then refer the steps I mentioned above.
Nitin
Thanks!
Since i like your specific version. I'll try my best.