Git Pull But Only A Directory Not the Entire Repo - github

How to Download Only A Particular folder from GitHub.
I have a very slow Internet Connection and I am learning asp.net core.
The Tutorial requires code from this Link ->
https://github.com/aspnet/Docs/tree/master/aspnetcore/fundamentals/logging/index/sample2
So If I make a Git Pull Or Just Download the repo its a huge 800 Mb :(
I just wan't this little part

Downloading the zip remains the smallest archive you can download, since it does not include the full history of the repo.
And that archive does weight 780MB...
That being said, as described in "Download a single folder or directory from a GitHub repo", check if a service like DownGit can help.

Related

How to download and re-upload a repository?

I'm new to using GitHub and most of the resources online are beyond my understanding.
A few years ago I had to commit certain labs and assignments to GitHub, and the repositories were in a "classroom." Forking is disabled on these projects. I don't remember much, other than that we cloned the projects and edited/pushed from Eclipse.
I've long deleted the local copies of the projects I had, and I'm hoping to showcase some of them on my profile. However, even after a few tutorials from GitHub, I don't know how I'm supposed to download the "classroom" repository locally and then re-upload it to GitHub on my own account.
When I download a zip file of a given project, I re-attain a local copy of the project. But when I try to upload it via GitHub desktop, there are issues. I can't upload folders, which is a problem. When I try uploading everything inside the folders, github desktop buffers for ages and doesn't finish the task.
It feels like my question is so basic that I can't find pointers on it, since it's taken for granted that people know how to do this. Any pointers would be hugely appreciated.
You should be able to just fork it from the "classroom" repository again if you're just trying to get the original project. Then you can git clone your forked repo.
If that isn't an option you can git clone the "classroom" to your local machine. And create a new repo on your Github where you want the project to eventually be saved. Then go back to the local project you cloned and push the local copy back to your new repo:
git push --mirror <urlOfYourNewRepo>

How do I handle a large number of files as an input to a build when using VSTS?

To set expectations, I'm new to build tooling. We're currently using a hosted agent but we're open to other options.
We've got a local application that kicks off a build using the VSTS API. The hosted build tasks involve the Get sources step from a GitHub repo to the local file system in VSO. The next step we need to copy over a large number of files (upwards of about 10000 files), building the solution, and running the tests.
The problem is that the cloned GitHub repo is in the file system in Visual Studio Online, and my 10000 input files are on a local machine. That seems like a bit much, especially since we plan on doing CI and may have many builds being kicked off per day.
What is the best way to move the input files into the cloned repo so that we can build it? Should we be using a hosted agent for this? Or is it best to do this on our local system? I've looked in the VSO docs but haven't found an answer there. I'm not sure if I asking the right questions here.
There are some ways to handle the situation, you can follow the way which is closest to your situations.
Option 1. Add the large files to the github repo
If the local files are only related to the code of the github repo, you should add the files into the same repo so that all the required files will be cloned in Get Sources step, then you can build directly without copy files step.
Option 2. Manage the large files in another git repo, and then add the git repo as submodule for the github repo
If the local large files are also used for other code, you can manage the large files in a separate repo, and treat it as submodule for github repo by git submodule add <URL for the separate repo>. And in your VSTS build definition, select Checkout submodules in Get sources step. Then the large files can be used directly when you build the github code.
Option 3. Use private agent on your local machine
If you don’t want add the large files in the github repo or a separate git repo for some reasons, you can use a private agent instead. But the build run time may not improve obviously, because the changed run time is only the different between copying local files to server and copying local files to the same local machine.

how to download source code of cryengine V?

I have heard that cryengine V provides access to the full source code, but I can't find where to download the source code.
Anyone can tell me how to download the source code of cryengine V?
There are two ways to get CryEngine's source code from Github:
Download specific revision. For this, visit CryEngine public repository on Github, find a large green button on the right titled "Clone or download", and in a dropdown menu choose "Download ZIP". It will download a zipped version of the source code for you.
Via Git client. For that, install Git from its official site. If you already have Git installed, use some Git GUI client to clonse the repository, or create a directory, cd to that directory in console/terminal, and run command:
git clone https://github.com/CRYTEK-CRYENGINE/CRYENGINE.git
This way will also allow you to make pull requests to send fixes back to Crytek if you like.
PS. In order to get SDKs which contains much of the Sandbox content as well as samples, you possibly would also like to download GameSDK repository.
PS2. These instructions will let you get the latest version of CryEngine. In order to download specific one, move to releases tab on Github website.
There you go: https://www.cryengine.com/get-cryengine
Just register and you get the engine downloader.

Hosting executable on github

I want allow users to download executable of one of my project on github, without downloading all sources or browsing the entire project.
According to this similar question, you could use a upload/download service, which apparently, github has shut down.
So is there another way? Is github aiming at sharing code only, not software?
Update 2d July 2013, you now can define a release.
Releases are accompanied by release notes and links to download the software or source code.
Following the conventions of many Git projects, releases are tied to Git tags. You can use an existing tag, or let releases create the tag when it's published.
You can also attach binary assets (such as compiled executables, minified scripts, documentation) to a release. Once published, the release details and assets are available to anyone that can view the repository.
This is what replaces the old binary upload service, which was removed in December 2012!
Ideally, you would store your executable in an artifact repository, as opposed as a source repository like GitHub.
So yes, GitHub is for source control management, not deliveries (like binaries produced from your code).
Nexus is the usual choice for any generated artifacts like binaries, with a free upload possibility for open-source projects.
See "How do I get my software into Central?" (from this answer, also mentioned in "Maven repository hosting for non-public artifacts?")
You can create another repository to host all your builds , I mean executable files . With in that repository don't add any of your code other than your builds ,
As a result of this , people can click on download Zip button at git hub , which downloads only executable ( as a zip file ).
while building you can copy the executable file in a folder just push to remote repository which is hosting only builds .
Hope this helps .
basically , GIT is just an SCM ( source code management system ) it is not meant for this purpose .
but still this how you can utilize the service of github.org amd git .
hope this helps .
EDIT : -
Git hub now has a solution for hosting releases it has been well explained by #VonC in the post below . Please use that as a solution.
The following worked for me, YMMV. On a MAC and using Chrome browser, after getting to this page I clicked on the "Raw" button (the "View Raw" link also worked), and it downloaded the executable tatuMicro.kit to my Downloads folder
An exe file can be hosted under releases and the link can be distributed among friends etc. I tested it as recently as yesterday. Only issue is if someone sabotages the program for profit. The exe files can be moved around and distributed easily on pendrives.

Bitbucket: Bind a file from tip to be download-able

I am working inside a private repository, and collaborate with my friend, who are not very friendly with SCM and stuff. All he need is to monitor the latest release from my development, which is 1 single executable file.
I was wondering instead of cloning the whole repo each time he want to get the latest changes (sometimes my changeset can consists of several large binary files that only being used upon development, not testing). Can I bind the executable file into the Download section in BitBucket?. So that everytime I build my project, the executable file will appear in the Download section and he can download it right away.
For now all I can see from Bitbucket's download section is just the manual upload and Tag/Snapshot download, which I presume will pack a certain changesets into a compressed file. Is there any chance I can do this?.
Thanks.
If your executable file is checked into the repository, you can link to it at a specific revision:
https://staging.bitbucket.org/<username>/<repo>/raw/<revision>/file.exe
For example, this link will always give you the latest stable hg(1) man page from the Mercurial repository:
https://bitbucket.org/mirror/mercurial/raw/stable/doc/hg.1.txt
This would give you latest README on the default branch from the Django repository:
https://bitbucket.org/django/django/raw/default/README
If your executable isn't checked into the repository (some prefer not to check in build artifacts), you'll need to manually upload them in the downloads section of your repository. There isn't a REST API for creating project downloads at the moment.
Would giving your friend an archive of the tip work? Try this URL:
https://bitbucket.org/<username>/<project>/get/tip.tar.gz
#Idan's suggestion might already work for you, but if the archive is too big, you could set up an extra repository for binaries which automatically gets updated, committed and pushed by your build process. Then your fellow developer could download a comparatively small tip archive as suggested by Idan.
In addition to Idan's answer:
To fetch the latest version from the 'default' branch:
https://bitbucket.org/<username>/<project>/get/default.tar.gz
You can replace 'default' by any other branch name, tag name or changeset (if you know it).