[Nexus 5 Q&A, Help & Troubleshooting] jabza:
Open a terminal and cd to the directory that you set up your repo. Then, in your browser, open up [1/2] Settings: HALO and [2/2] Frameworks: HALO from the gerrit.

Because it's titled [1/2], we'll start with the settings entry.

See where it says "Project	AOSPA/android_packages_apps_Settings"? That's important. It says that this change is in packages/apps/Settings. So, in terminal:

cd packages/apps/Settings

Now, in the top right of the page, there's a download button. Click that, then choose "anonymous http" from the dropdown, instead of "repo". Click the clipboard button next to the one titled "cherry pick". It will copy the command to your clipboard, then paste it in terminal. It should look like this:

git fetch https://gerrit.paranoidandroid.co/AOSPA/android_packages_apps_Settings refs/changes/39/239/13 && git cherry-pick FETCH_HEAD

Press enter, and it'll download the changes. If all goes well, you'll see a message saying it's done. If not, you'll need to fix the errors. I'll get to that later.

Now, bring your terminal back to the top of your build directory with

cd ../../..

Now that you've put the settings entry for Halo in, now you need to add the frameworks. Go to the second gerrit entry, [2/2] Fameworks HALO.

You'll notice on the build page that, under project, it says AOSPA/android_frameworks_base. This means you have to go to the frameworks/base folder.

cd frameworks/base

Again, go to the download tab and copy the cherry-pick

git fetch https://gerrit.paranoidandroid.co/AOSPA/android_frameworks_base refs/changes/44/244/21 && git cherry-pick FETCH_HEAD

Press enter, and it'll try to merge. Chances are, this is where it doesn't work. The terminal output will tell you if it didn't work. If it didn't work, enter this command to check the problem:

git status

The terminal will then output all the changes to files this cherry pick consists of. In green are the files that work, and in red are the problem files. Here is the trickiest part.

Usually, for the frameworks cherry pick, my "git status" output tells me the problem is in packages/SystemUI/res/values/pa_strings.xml. So, in terminal:

gedit packages/SystemUI/res/values/pa_strings.xml

This will open up the file in question in a text editor. Now, on the gerrit entry for the Halo frameworks, there's a list of changed files. Click on the entry for pa_strings.xml (it's toward the bottom) (or here's a link). It'll show you the difference in the base file and the file needed for Halo frameworks. Everything in green is added, and everything in red is removed. So check this against your file, and make sure the changes are done. Frequently when you run into cherry picking errors, all you need to do is remove the line "<<<<< HEAD" that gets mistakenly put into the file.

Once you've edited the problem file, in this case pa_strings.xml, you need to tell your terminal you've fixed the problem. So save and exit the text editor, and type this in terminal:

git add packages/SystemUI/res/values/pa_strings.xml

Once again, check for any errors.

git status

If everything turns up green, you're good to go. Commit these changes to your build.

git commit

Now, go back to the base of your build in terminal.

cd ../..

From here, you just have to build to see if it works.

./rom-build.sh hammerhead

Wait for it to do its thing. If it compiles and tells you where the output file is, congratulations! You have a build with halo! If not, look at the output and do your best to fix the error that stopped it from building.

Then, at the end of the day, when you want to get rid of whatever cherry picking you've done, sync with the PA source code and it'll wipe out all cherry picks.

repo sync

This reverts it to a clean build, using the latest code from PA and all the commits from the "merged" section of the gerrit.