====================================
Bitbucket
====================================


Bitbucket repositories
+++++++++++++++++++++++++++

Bitbucket is a web-based hosting service for source code
and development projects that use Git version control system. It is
important that you familiarize yourselves with Bitbucket before
learning Git. If you are alreay familiar with Bitbucket, you can move
to the `Git`__ section. 


The main advantages of Bitbucket include:

- providing a hosting site for repositories to allow them to be easily
  shared between sveral users (or developers) and different computers;

- providing a web-based resource to actively develope a project (such
  as a software) by documenting all the changes that you commit
  throughout the project.  



Bitbucket is free for individuals and small teams with up to 5 users,
with unlimited private and public repositories. If you create a
private repository, no one can view or clone it unless you grant
permission. Private repositories are usually useful for small, personal
projects, such as your homework assignments in this course. Public repositories are more useful for open
source software projects, or for classes like this one.  

**Remark 1:** UNM students and faculty can also develop thrie codes
using `LoboGit`__, which is an internal and private version control
system collaborative environment for shared software code development
based on the Git version control system. It allows for committing
comments and documenting your developing codes. 

**Remark 2:** To make free open access repositories, e.g. for open
source codes, `GitHub`__ is recommended. In addition to allowing an
unlimited number of open repositories, the Github links can be
integrated to `Zenodo`__, which is an open access repository. This
will assign Digital Object Identifier (DOI) numbers to the codes
hosted in GitHub and hence make the codes `citable`.



Creating your own Bitbucket repository
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

You need to create your own repository on Bitbucket for two main
reasons:

* to learn how to use Bitbucket;

* to use this repository to submit your solutions to homework
  assignments. You will give the instructor permission to clone
  your repository so that I can grade your homework. Ofcourse others
  will not be able to view it unless you also give them permission.

Follow the steps below.

1. Create an account: Go to `http://bitbucket.org/`__ and click on
   "Get it free". Fill in the form, starting with entering your email
   address. You can skip this step if you already have an account. 

2. After you are taken to your account, click on the + sign and create
   a new repository:
   
    * Specify the name of respository (not the same as your user
      name). Stick to lower case letters and numbers. Upper case
      letters and symbols such as underscore sometimes get modified by
      Bitbucket. For ex. the class repository is named `hpsc2020`,
      owned by user `motamed`. To avoid confusion, you may name your
      repository `471LASTNAME` (replace `LASTNAME` with your last name using lower case letters).
    
    * Make sure it is a private repository.

    * Click on "Create repository".  

3. You will clone your repository using Git in the `Git`__ section.


__ http://math.unm.edu/~motamed/Teaching/Fall20/HPSC/git.html
__ https://lobogit.unm.edu/users/sign_in
__ https://github.com/
__ https://zenodo.org/
__ https://bitbucket.org/    
__ http://math.unm.edu/~motamed/Teaching/Fall20/HPSC/git.html