background preloader

Tv's cobweb: Git for Computer Scientists

Tv's cobweb: Git for Computer Scientists
Abstract Quick introduction to git internals for people who are not scared by words like Directed Acyclic Graph. Storage In simplified form, git object storage is "just" a DAG of objects, with a handful of different types of objects. blob: The simplest object, just a bunch of bytes. tree: Directories are represented by tree object. When a node points to another node in the DAG, it depends on the other node: it cannot exist without it. commit: A commit refers to a tree that represents the state of the files at the time of the commit. refs: References, or heads or branches, are like post-it notes slapped on a node in the DAG. git commit adds a node to the DAG and moves the post-it note for current branch to this new node. The HEAD ref is special in that it actually points to another ref. remote refs: Remote references are post-it notes of a different color. tag: A tag is both a node in the DAG and a post-it note (of yet another color). History This is the simplest repository.

Why might git log not show history for a moved file, and what can I do about it The Places frecency algorithm - MDC Frecency is a score given to each unique URI in Places, encompassing bookmarks, history and tags. This score is determined by the amount of revisitation, the type of those visits, how recent they were, and whether the URI was bookmarked or tagged. The word "frecency" itself is a combination of the words "frequency" and "recency." The default frecency value for all valid entries is -1. The frecency calculation process Example This is an example of a frecency calculation for a URI that is bookmarked and has been visited twice recently (once yesterday, and once last week by clicking a link), and two other times more than 90 days ago: Notes The number of sampled visits is min(10 most recent visits pref, total visit counts). Developer notes There are various development notes you can read about Places that may offer additional insights: History The initial algorithm design was by Mike Connor and Seth Spitzer.

A successful Git branching model » nvie.com Note of reflection (March 5, 2020)This model was conceived in 2010, now more than 10 years ago, and not very long after Git itself came into being. In those 10 years, git-flow (the branching model laid out in this article) has become hugely popular in many a software team to the point where people have started treating it like a standard of sorts — but unfortunately also as a dogma or panacea.During those 10 years, Git itself has taken the world by a storm, and the most popular type of software that is being developed with Git is shifting more towards web apps — at least in my filter bubble. Web apps are typically continuously delivered, not rolled back, and you don't have to support multiple versions of the software running in the wild.This is not the class of software that I had in mind when I wrote the blog post 10 years ago. Why git? For a thorough discussion on the pros and cons of Git compared to centralized source code control systems, see the web. The main branches ¶ develop

appscript shadowhand/git-encrypt - GitHub The C++ 'const' Declaration: Why & How The 'const' system is one of the really messy features of C++. It is simple in concept: variables declared with ‘const’ added become constants and cannot be altered by the program. However it is also used to bodge in a substitute for one of the missing features of C++ and there it gets horridly complicated and sometimes frustratingly restrictive. The following attempts to explain how 'const' is used and why it exists. Simple Use of ‘const’ The simplest use is to declare a named constant. To do this, one declares a constant as if it was a variable but add ‘const’ before it. const int Constant1=96; will create an integer constant, unimaginatively called ‘Constant1’, with the value 96. Such constants are useful for parameters which are used in the program but do not need to be changed after the program is compiled. It also works with pointers but one has to be careful where ‘const’ is put as that determines whether the pointer or what it points to is constant. const int * Constant2

Technical Jargon Last month I posted about hosting a git server under IIS by using GitAspx. While this is certainly one way to host a git server on windows, I wouldn’t recommend this in a production environment. An alternative (and somewhat more stable) approach is to use the native implementation of git-http-backend that ships with msysgit along with Apache. Step 1: Install Git Firstly you’ll need to install msysgit. The current stable version is 1.7.0.2, but this process should also work with the 1.7.1 beta. Once installed, you’ll need to tweak the installation slightly. In order to fix this, copy libiconv2.dll from C:Program Files (x86)Gitbin to C:Program Files (x86)Gitlibexecgit-core Now when you run git-http-backend.exe from a command prompt, the application should run and you should see an HTTP 500 server error: Step 2: Install Apache Next you’ll need to install the Apache webserver. If you visit at this point you should be greeted with Apache’s standard “It works!”

How to be a Programmer: A Short, Comprehensive, and Personal Summary Debugging is the cornerstone of being a programmer. The first meaning of the verb to debug is to remove errors, but the meaning that really matters is to see into the execution of a program by examining it. A programmer that cannot debug effectively is blind. Idealists that think design, or analysis, or complexity theory, or whatnot, are more fundamental are not working programmers. Debugging is about the running of programs, not programs themselves. To get visibility into the execution of a program you must be able to execute the code and observe something about it. The common ways of looking into the ‘innards’ of an executing program can be categorized as: Using a debugging tool, Printlining --- Making a temporary modification to the program, typically adding lines that print information out, and Logging --- Creating a permanent window into the programs execution in the form of a log. Some beginners fear debugging when it requires modifying code. How to Understand Performance Problems

GitHub Firewall Install

Related: