~bzr/ubuntu/lucid/dulwich/bzr-ppa

« back to all changes in this revision

Viewing changes to docs/tutorial/5-rename-file.txt

Reorganize the tutorial. This kills some of the duplication and
fixes the testsuite to test all chapters.

It also adds a note in the conclusion indicating that the tutorial only
covers a part of Dulwich' functionality.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Renaming a file
2
 
===============
3
 
 
4
 
Remember you learned that the file name and content are distinct. So renaming
5
 
a file is just about associating a blob id to a new name. We won't store more
6
 
content, and the operation will be painless.
7
 
 
8
 
Let's transfer the blob id from the old name to the new one::
9
 
 
10
 
    >>> tree["eggs"] = tree["spam"]
11
 
    >>> del tree["spam"]
12
 
 
13
 
As usual, we need a commit to store the new tree id::
14
 
 
15
 
  >>> c5 = Commit()
16
 
  >>> c5.tree = tree.id
17
 
  >>> c5.parents = [commit.id]
18
 
  >>> c5.author = c5.committer = author
19
 
  >>> c5.commit_time = c5.author_time = int(time())
20
 
  >>> c5.commit_timezone = c5.author_timezone = tz
21
 
  >>> c5.encoding = "UTF-8"
22
 
  >>> c5.message = 'Rename "spam" to "eggs"'
23
 
 
24
 
As for a deletion, we only have a tree and a commit to save::
25
 
 
26
 
    >>> object_store.add_object(tree)
27
 
    >>> object_store.add_object(c5)
28
 
 
29
 
Remains to make the head bleeding-edge::
30
 
 
31
 
    >>> repo.refs['refs/heads/master'] = commit.id
32
 
 
33
 
As a last exercise, see how ``git show`` illustrates it.