This thread is the sickest thanks ....it helped me a lot!!
Sent from my LG-LS970 using Tapatalk 4 Beta
Sent from my LG-LS970 using Tapatalk 4 Beta
This thread is the sickest thanks ....it helped me a lot!!
Sent from my LG-LS970 using Tapatalk 4 Beta
What you can do is manually copy paste the projects that are missing from your CM's repo from your Domination's repos.i have 2 repos that i sync.
1 - domination
2 - cm
now intially i only had domination. (in ~/android)
then i added cm with reference flag to domination. (in ~/cm10)
now domination team decided to work with pacman team so domination repo is of no use anymore.
but i still want cm repo but i wanna delete domination repo.
but if i do that, i will have to sync all the local objects again or all the files which were previously obtained from domination repo.
is there any way to keep only cm repo and be able to delete domination repo.
i know i can wipe out all the folders from android (except .repo) but then files from other repos will still be left behind but my motive is to free up as much space as possible.
repo --trace sync -c -d -jX
It doesn't re-download the whole project.As I write this, sharing your agony (slow internet speed (~50 kBps)), I was wondering if there was something which would help me patch the existing, already-downloaded source code without having to download the whole project again...
Example:
1. I downloaded source.
2. Someone committed changes to repo, say 5-6 commits.
3. I do repo sync again, it is naturally gonna re-download the project. I don't want the whole project to be downloaded again. I want something that automatically downloads the *.patch files and patches my source, so that I can keep it updated without using much of bandwidth.
Is this even possible???
p.s. cherry picking, yeah, I read, but doing it for each and every commit? there ought to be another simple way...
It will take a reference of the last commit that is present in your local source and then download the commits that newly have been committed... that's how git works !But then... how would it sync the tree to master (if it doesn't download the whole project again)???
It will take a reference of the last commit that is present in your local source and then download the commits that newly have been committed... that's how git works !
My sync completed succesfully and I tried syncing again, it gave me no errors. Then I deleted the referenced folder (half synced folder) since it's useless. Now when I start sync in my new source folder, it's giving me all kinds of errors
is it becasue I deleted the referenced folder? What should I do ?
What you can do now is to reference whatever you have now and start another fresh repo sync. That must do the trick.
You can still scavange the source for some downloaded repos and manually copy paste them while syncing it the latest time. Check the .repo/projects.I tried but it also gives errors. Maybe because it checks for reference in my current source folder and gets redirected to the deleted source
I guess I have to start fresh again. So I have to keep my original source (that I downloaded fully) no matter what ?
Another question, you mentioned to set CCACHE value to 50~100GB. But I have created 40GB drive for ubuntu. Is this gonna be a problem ?
OK, sync is complete. I still need some basic info about building....You can still scavange the source for some downloaded repos and manually copy paste them while syncing it the latest time. Check the .repo/projects.
OK, sync is complete. I still need some basic info about building....
1) I ran some commands like vendor/cm/get-prebuilts, . build/envsetup.sh, make -j4 otatools etc. There are lots of messages showing up in the terminal and I noticed some warnings like "not found".
How can I be sure that this initial processes are completed successfully?
2) Say I modified files, created new ones. Now I want to revert back to the original source that I downloaded. Can it be done by repo sync ?
git reset --hard
3) I'm just following steps blindly from a guide (like you mentioned in OP ). I want to learn what is actually happening in the background, which files get called. Is there any guide about the source files/folders you can point me to ?
4) Also I want to learn how my device is configured for build. I know that different .mk files are behind this but a guide would be great.
Thanks in advance
What I meant is that this setup like envsetup.sh, do they actually change any files or just build the environment ? I'm more confused about make -j4 otatools cause when I run it, it shows so many verbose output that I really can't see if there is any error occurred.Well if you mean if ensuring the sync is done.. ? then just repo sync again.. it will check if all the stuff is downloaded and if everything is up to date.
So that means if I only manually edit files, then I have to do this. Those environment setup doesn't do anything to the files ?If you have called your own repos and pushed those commits to your own repos / made changes in the stuff not declared in the manifest .. then the repo sync command shouldnt pop up an issue. Else it will ask you to commit these changes.
Do a
in the local repositories where you have made the changes ...Code:git reset --hard
I am trying bro. But just a info about which folders are for what purpose, which folders I will actually make changes to, which should be left untouched etc would be nice . If you ever come across any post/thread, pls tell me.Well, if we could, then we would write a guide on everything... But you and I know that it is not practically possible. There may be guides I may not know of but Some stuff you will have to learn on your own experimenting and going through code. Some basics of Programming languages like python , c , c++ and java are a must. So , let The Internet be your guide.
What I meant is that this setup like envsetup.sh, do they actually change any files or just build the environment ? I'm more confused about make -j4 otatools cause when I run it, it shows so many verbose output that I really can't see if there is any error occurred.
So that means if I only manually edit files, then I have to do this. Those environment setup doesn't do anything to the files ?
I am trying bro. But just a info about which folders are for what purpose, which folders I will actually make changes to, which should be left untouched etc would be nice . If you ever come across any post/thread, pls tell me.
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
repo sync -j4
repo sync -j4
akshat@vaio:~$ mkdir -p kang
akshat@vaio:~$ cd kang
akshat@vaio:~/kang$ repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr1
Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 101, done
remote: Finding sources: 100% (101/101)
Receiving objects: 100% (2526/2526), 1.69 MiB | 67 KiB/s, done.
remote: Total 2526 (delta 1442), reused 2526 (delta 1442)
Resolving deltas: 100% (1442/1442), done.
From https://gerrit.googlesource.com/git-repo
* [new branch] maint -> origin/maint
* [new branch] master -> origin/master
* [new branch] stable -> origin/stable
* [new tag] v1.0 -> v1.0
* [new tag] v1.0.1 -> v1.0.1
* [new tag] v1.0.2 -> v1.0.2
* [new tag] v1.0.3 -> v1.0.3
* [new tag] v1.0.4 -> v1.0.4
* [new tag] v1.0.5 -> v1.0.5
* [new tag] v1.0.6 -> v1.0.6
* [new tag] v1.0.7 -> v1.0.7
* [new tag] v1.0.8 -> v1.0.8
* [new tag] v1.0.9 -> v1.0.9
* [new tag] v1.1 -> v1.1
* [new tag] v1.10.0 -> v1.10.0
* [new tag] v1.10.1 -> v1.10.1
* [new tag] v1.10.2 -> v1.10.2
* [new tag] v1.10.3 -> v1.10.3
* [new tag] v1.10.4 -> v1.10.4
* [new tag] v1.11.0 -> v1.11.0
* [new tag] v1.11.1 -> v1.11.1
* [new tag] v1.12.0 -> v1.12.0
* [new tag] v1.12.1 -> v1.12.1
* [new tag] v1.12.2 -> v1.12.2
* [new tag] v1.2 -> v1.2
* [new tag] v1.3 -> v1.3
* [new tag] v1.3.1 -> v1.3.1
* [new tag] v1.3.2 -> v1.3.2
* [new tag] v1.4 -> v1.4
* [new tag] v1.4.1 -> v1.4.1
* [new tag] v1.4.2 -> v1.4.2
* [new tag] v1.4.3 -> v1.4.3
* [new tag] v1.4.4 -> v1.4.4
* [new tag] v1.5 -> v1.5
* [new tag] v1.5.1 -> v1.5.1
* [new tag] v1.6 -> v1.6
* [new tag] v1.6.1 -> v1.6.1
* [new tag] v1.6.10 -> v1.6.10
* [new tag] v1.6.10.1 -> v1.6.10.1
* [new tag] v1.6.10.2 -> v1.6.10.2
* [new tag] v1.6.2 -> v1.6.2
* [new tag] v1.6.3 -> v1.6.3
* [new tag] v1.6.4 -> v1.6.4
* [new tag] v1.6.5 -> v1.6.5
* [new tag] v1.6.6 -> v1.6.6
* [new tag] v1.6.7 -> v1.6.7
* [new tag] v1.6.7.1 -> v1.6.7.1
* [new tag] v1.6.7.2 -> v1.6.7.2
* [new tag] v1.6.7.3 -> v1.6.7.3
* [new tag] v1.6.7.4 -> v1.6.7.4
* [new tag] v1.6.7.5 -> v1.6.7.5
* [new tag] v1.6.8 -> v1.6.8
* [new tag] v1.6.8.1 -> v1.6.8.1
* [new tag] v1.6.8.10 -> v1.6.8.10
* [new tag] v1.6.8.11 -> v1.6.8.11
* [new tag] v1.6.8.2 -> v1.6.8.2
* [new tag] v1.6.8.3 -> v1.6.8.3
* [new tag] v1.6.8.4 -> v1.6.8.4
* [new tag] v1.6.8.5 -> v1.6.8.5
* [new tag] v1.6.8.6 -> v1.6.8.6
* [new tag] v1.6.8.7 -> v1.6.8.7
* [new tag] v1.6.8.8 -> v1.6.8.8
* [new tag] v1.6.8.9 -> v1.6.8.9
* [new tag] v1.6.9 -> v1.6.9
* [new tag] v1.6.9.1 -> v1.6.9.1
* [new tag] v1.6.9.2 -> v1.6.9.2
* [new tag] v1.6.9.3 -> v1.6.9.3
* [new tag] v1.6.9.4 -> v1.6.9.4
* [new tag] v1.6.9.5 -> v1.6.9.5
* [new tag] v1.6.9.6 -> v1.6.9.6
* [new tag] v1.6.9.7 -> v1.6.9.7
* [new tag] v1.6.9.8 -> v1.6.9.8
* [new tag] v1.7 -> v1.7
* [new tag] v1.7.1 -> v1.7.1
* [new tag] v1.7.2 -> v1.7.2
* [new tag] v1.7.3 -> v1.7.3
* [new tag] v1.7.3.1 -> v1.7.3.1
* [new tag] v1.7.4 -> v1.7.4
* [new tag] v1.7.4.1 -> v1.7.4.1
* [new tag] v1.7.4.2 -> v1.7.4.2
* [new tag] v1.7.4.3 -> v1.7.4.3
* [new tag] v1.7.5 -> v1.7.5
* [new tag] v1.7.6 -> v1.7.6
* [new tag] v1.7.6.1 -> v1.7.6.1
* [new tag] v1.7.7 -> v1.7.7
* [new tag] v1.7.7.1 -> v1.7.7.1
* [new tag] v1.7.7.2 -> v1.7.7.2
* [new tag] v1.7.7.3 -> v1.7.7.3
* [new tag] v1.7.7.4 -> v1.7.7.4
* [new tag] v1.7.7.5 -> v1.7.7.5
* [new tag] v1.7.7.6 -> v1.7.7.6
* [new tag] v1.7.8 -> v1.7.8
* [new tag] v1.7.8.1 -> v1.7.8.1
* [new tag] v1.7.8.2 -> v1.7.8.2
* [new tag] v1.8.0 -> v1.8.0
* [new tag] v1.8.1 -> v1.8.1
* [new tag] v1.8.2 -> v1.8.2
* [new tag] v1.9.0 -> v1.9.0
* [new tag] v1.9.1 -> v1.9.1
* [new tag] v1.9.2 -> v1.9.2
* [new tag] v1.9.3 -> v1.9.3
* [new tag] v1.9.4 -> v1.9.4
* [new tag] v1.9.5 -> v1.9.5
* [new tag] v1.9.6 -> v1.9.6
Get https://github.com/AOKP/platform_manifest.git
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
remote: Counting objects: 1722, done.
remote: Compressing objects: 100% (1012/1012), done.
remote: Total 1722 (delta 839), reused 1552 (delta 709)
Receiving objects: 100% (1722/1722), 249.52 KiB | 50 KiB/s, done.
Resolving deltas: 100% (839/839), done.
From https://github.com/AOKP/platform_manifest
* [new branch] ics -> origin/ics
* [new branch] jb -> origin/jb
* [new branch] jb-mr1 -> origin/jb-mr1
* [new tag] Build-2 -> Build-2
* [new tag] Build-3 -> Build-3
* [new tag] Build-4 -> Build-4
* [new tag] Build-5 -> Build-5
* [new tag] Milestone-1 -> Milestone-1
* [new tag] jb-mr1_build-1 -> jb-mr1_build-1
* [new tag] jb-mr1_build-4 -> jb-mr1_build-4
* [new tag] jb-mr1_build-6 -> jb-mr1_build-6
* [new tag] jb-mr1_milestone-1 -> jb-mr1_milestone-1
Your identity is: akshatshenoy <akshat.shenoy@gmail.com>
If you want to change this, please re-run 'repo init' with --config-name
repo has been initialized in /home/akshat/kang
akshat@vaio:~/kang$ repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr1
<remote name=" any name here "
fetch="url of the remote website/hosting/server "
review="url of the code review of the repo :optional: " />
<remote name="github"
fetch="https://github.com/" />
<remote name="bitbucket" fetch="https://bitbucket.org"/>
<remote name="aokp"
fetch="https://github.com/"
review="gerrit.aokp.co" />
<remote name=" any name here "
fetch="url of the remote website/hosting/server "
review="url of the code review of the repo :optional: " />
<default revision="any/path/here"
remote="remote hosting name defined earlier"
sync-j="x" />
<remote name="aosp"
fetch="https://android.googlesource.com/"
review="https://android-review.googlesource.com/" />
<default revision="refs/tags/android-4.2.2_r1.2"
remote="aosp"
sync-j="4" />
<project path=" path/in/work/tree" name="/repo/name/in/your/default" />
<project path="abi/cpp" name="platform/abi/cpp" />
<project path="bootable/diskinstaller" name="platform/bootable/diskinstaller" />
<project path=" directory in work tree" name="name of the repository in remote" remote="name of remote defined earlier" revision="branch of the repository" />
<project path="bootable/recovery" name="CyanogenMod/android_bootable_recovery" remote="cm" revision="cm-10.1" />
https://github.com/ && CyanogenMod/android_bootable_recovery
in total :
https://github.com/CyanogenMod/android_bootable_recovery
android_path_to_directory_in_work_tree || path_to_directory_in_work_tree
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="red-devil"
fetch="https://github.com/red-devil" />
<project path="Cherrypicking/frameworks/base" name="AeonROM/android_frameworks_base" remote="red-devil" revision="master" />
<project path="Cherrypicking/frameworks/native" name="AeonROM/android_frameworks_native" remote="red-devil" revision="master" />
<project path="Cherrypicking/frameworks/av" name="AeonROM/android_frameworks_av" remote="red-devil" revision="master" />
</manifest>
<remove-project name="name of the project" />
So why do I waste my data and time downloading those ?
I think I should modify the default.xml / manifest.xml .
NO !
Beware ! If you try to edit the default.xml / manifest.xml the git will tell you to commit these changes as they do NOT match with the online / and the synced version of the default.xml that you have originally initializeed with.
So this means you will either have to commit those changes , push it to github and update the default.xml
This is not possible unless you are a device maintainer for a ROM and even if you are such drastic changes mean it can affect the other users of the same default.xml . So chances are you can never bring about a change in the default.xml.
So dont even think about editing the default.xml :silly:
<remove-project name="name_of_project" />
<remove-project name="AOKP/device_samsung_d2att" />
<remove-project name="AOKP/device_samsung_d2tmo" />
<remote name=" any name here "
fetch="url of the remote website/hosting/server "
review="url of the code review of the repo :optional: " />
<project path=" directory in work tree" name="name of the repository in remote" remote="name of remote defined earlier" revision="branch
of the repository" />
<project path="device/htc/pico" name="android_device_htc_pico_aokp" remote="red-devil" revision="master"/>
<project path="kernel/htc/pico" name="android_kernel_htc_pico" remote="red-devil" revision="cm-10.1" />
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="red-devil"
fetch="https://github.com/red-devil/" />
<project path="device/htc/pico" name="android_device_htc_pico_aokp" remote="red-devil" revision="master"/>
<project path="kernel/htc/pico" name="android_kernel_htc_pico" remote="red-devil" revision="cm-10.1" />
<remove-project name="AOKP/device_acer_a510" />
<remove-project name="AOKP/device_asus_tilapia" />
<remove-project name="AOKP/device_htc_evita" />
<remove-project name="AOKP/device_htc_s4-common" />
<remove-project name="AOKP/device_lge_iprj-common" />
<remove-project name="AOKP/device_lge_mako" />
<remove-project name="AOKP/device_lge_p930" />
<remove-project name="AOKP/device_lge_su640" />
<remove-project name="AOKP/device_lge_vs920" />
<remove-project name="AOKP/device_motorola_maserati" />
<remove-project name="AOKP/device_motorola_omap4-common" />
<remove-project name="AOKP/device_motorola_solana" />
<remove-project name="AOKP/device_motorola_spyder" />
<remove-project name="AOKP/device_motorola_targa" />
<remove-project name="AOKP/device_motorola_umts_spyder" />
<remove-project name="AOKP/device_samsung_aries-common" />
<remove-project name="AOKP/device_samsung_d2-common" />
<remove-project name="AOKP/device_samsung_celox-common" />
<remove-project name="AOKP/device_samsung_d2att" />
<remove-project name="AOKP/device_samsung_d2tmo" />
<remove-project name="AOKP/device_samsung_d2usc" />
<remove-project name="AOKP/device_samsung_d2vzw" />
<remove-project name="AOKP/device_samsung_galaxys2-common" />
<remove-project name="AOKP/device_samsung_hercules" />
<remove-project name="AOKP/device_samsung_i605" />
<remove-project name="AOKP/device_samsung_i9100" />
<remove-project name="AOKP/device_samsung_i9100g" />
<remove-project name="AOKP/device_samsung_i9300" />
<remove-project name="AOKP/device_samsung_l900" />
<remove-project name="AOKP/device_samsung_maguro" />
<remove-project name="AOKP/device_samsung_manta" />
<remove-project name="AOKP/device_samsung_msm8660-common" />
<remove-project name="AOKP/device_samsung_msm8960-common" />
<remove-project name="CyanogenMod/android_device_samsung_omap4-common" />
<remove-project name="AOKP/device_samsung_smdk4412-common" />
<remove-project name="CyanogenMod/android_device_samsung_smdk4412-qcom-common" />
<remove-project name="AOKP/device_samsung_t0lte" />
<remove-project name="AOKP/device_samsung_t0lteatt" />
<remove-project name="AOKP/device_samsung_t0ltetmo" />
<remove-project name="AOKP/device_samsung_toro" />
<remove-project name="AOKP/device_samsung_toroplus" />
<remove-project name="AOKP/device_samsung_tuna" />
<remove-project name="AOKP/device_samsung_vibrantmtd" />
<remove-project name="AOKP/device_sony_hayabusa" />
<remove-project name="AOKP/device_sony_mint" />
<remove-project name="AOKP/device_sony_odin" />
<remove-project name="AOKP/device_sony_tsubasa" />
<remove-project name="AOKP/device_sony_yuga" />
<remove-project name="AOKP/device_sony_blue-common" />
<remove-project name="AOKP/device_sony_fusion3-common" />
<remove-project name="CyanogenMod/android_device_sony_qcom-common" />
<remove-project name="AOKP/device_sony_common" />
<remove-project name="AOKP/packages_apps_Torch" />
</manifest>
android_device_htc_codename
android_device_sony_codename
android_device_samsung_codename
android_kernel_oem_codename
kernel_oem_codename
android_packages_apps_appname
packages_apps_appname
android_packages_wallpapers_wallpapername
android_vendor_oem_codename_proprietary
<project path="prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6" name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6" groups="pdk,darwin,arm" />
<project path="prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6" name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6" groups="pdk,darwin,arm" />
<project path="prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6" name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6" groups="pdk,darwin,mips" />
<project path="prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6" name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6" groups="pdk,darwin,x86" />
repo init --reference=~/root/of/already/downloaded/source -u git://url.com/ROM.git -b branch
repo init -u git//www.github.com/CyanogenMod/android.git -b cm-10.1
repo sync -j4
So , now I have compiled CyanogenMod and I am bored of it. Want to get hands on a new ROM, say AOKP.
So now another 15 GB of bandwidth for this ?!
NO !
I will use the reference flag!
export USE_CCACHE=1
[COLOR="Red"]export CCACHE_DIR=/source-directory/prebuilts/misc/linux-x86/ccache[/COLOR]
export USE_CCACHE=1
[COLOR="DarkOrange"]export CCACHE_DIR=/source-directory/prebuilt/linux-x86/ccache/ccache[/COLOR]
prebuilts/misc/linux-x86/ccache/ccache -M 50G
cd device/htc/pico
git init
git pull git@github.com:red-devil/android_device_htc_pico_aokp.git
git remote add somename git://github.com/user/repo.git
git fetch somename
git remote add cyanogenpico git@github.com:TeamPico/android_device_htc_pico.git
git fetch cyanogenpico
git cherry-pick <sha-of-commit>
git cherry-pick aa39fd899e321395f3c08c9a7f606ac458bbbd1b
git push git-ssh
git push git@github.com:red-devil/android_device_htc_pico_aokp.git
akshat@vaio:/media/akshat/HD/android/kang/device/htc/pico$ git cherry-pick aa39fd899e321395f3c08c9a7f606ac458bbbd1b
error: could not apply aa39fd8... cut out debugging
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'
git status
git add .
git commit -m " name of commit "
git push url.git
/home/user/source/cyanogenmod-11.0/.repo/projects/art.git/objects
cd .repo/projects
find ./ -type f -exec sed -i 's/\/source\/cyanogenmod-11.0\//\/works\/cyanogenmod-11.0\//g' {} \;