Linux ip-148-66-134-25.ip.secureserver.net 3.10.0-1160.119.1.el7.tuxcare.els11.x86_64 #1 SMP Sun Nov 3 09:06:59 UTC 2024 x86_64
Apache
: 148.66.134.25 | : 18.188.119.67
66 Domain
8.0.30
amvm
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
git-1.8.3.1 /
technical /
[ HOME SHELL ]
Name
Size
Permission
Action
api-allocation-growing.html
17.55
KB
-rw-r--r--
api-allocation-growing.txt
1019
B
-rw-r--r--
api-argv-array.html
19.44
KB
-rw-r--r--
api-argv-array.txt
2.12
KB
-rw-r--r--
api-builtin.html
19.43
KB
-rw-r--r--
api-builtin.txt
2
KB
-rw-r--r--
api-config.html
23.39
KB
-rw-r--r--
api-config.txt
5.18
KB
-rw-r--r--
api-credentials.html
27.9
KB
-rw-r--r--
api-credentials.txt
8.87
KB
-rw-r--r--
api-decorate.html
16.23
KB
-rw-r--r--
api-decorate.txt
60
B
-rw-r--r--
api-diff.html
24.32
KB
-rw-r--r--
api-diff.txt
5.22
KB
-rw-r--r--
api-directory-listing.html
20.75
KB
-rw-r--r--
api-directory-listing.txt
2.71
KB
-rw-r--r--
api-gitattributes.html
21.9
KB
-rw-r--r--
api-gitattributes.txt
3.62
KB
-rw-r--r--
api-grep.html
16.31
KB
-rw-r--r--
api-grep.txt
76
B
-rw-r--r--
api-hash.html
18.42
KB
-rw-r--r--
api-hash.txt
1.4
KB
-rw-r--r--
api-hashmap.html
35.57
KB
-rw-r--r--
api-hashmap.txt
7.71
KB
-rw-r--r--
api-history-graph.html
24.08
KB
-rw-r--r--
api-history-graph.txt
5.9
KB
-rw-r--r--
api-in-core-index.html
16.96
KB
-rw-r--r--
api-in-core-index.txt
457
B
-rw-r--r--
api-index-skel.txt
431
B
-rw-r--r--
api-index.html
18.45
KB
-rw-r--r--
api-index.sh
611
B
-rw-r--r--
api-index.txt
1.68
KB
-rw-r--r--
api-lockfile.html
20.05
KB
-rw-r--r--
api-lockfile.txt
2.92
KB
-rw-r--r--
api-merge.html
21.36
KB
-rw-r--r--
api-merge.txt
3.3
KB
-rw-r--r--
api-object-access.html
16.73
KB
-rw-r--r--
api-object-access.txt
342
B
-rw-r--r--
api-parse-options.html
31.03
KB
-rw-r--r--
api-parse-options.txt
9.36
KB
-rw-r--r--
api-quote.html
16.42
KB
-rw-r--r--
api-quote.txt
145
B
-rw-r--r--
api-ref-iteration.html
19.71
KB
-rw-r--r--
api-ref-iteration.txt
2.41
KB
-rw-r--r--
api-remote.html
21.26
KB
-rw-r--r--
api-remote.txt
3.3
KB
-rw-r--r--
api-revision-walking.html
19.76
KB
-rw-r--r--
api-revision-walking.txt
2.39
KB
-rw-r--r--
api-run-command.html
28.25
KB
-rw-r--r--
api-run-command.txt
8.08
KB
-rw-r--r--
api-setup.html
16.51
KB
-rw-r--r--
api-setup.txt
180
B
-rw-r--r--
api-sha1-array.html
19.39
KB
-rw-r--r--
api-sha1-array.txt
2.25
KB
-rw-r--r--
api-sigchain.html
17.74
KB
-rw-r--r--
api-sigchain.txt
1.34
KB
-rw-r--r--
api-strbuf.html
32.15
KB
-rw-r--r--
api-strbuf.txt
10.17
KB
-rw-r--r--
api-string-list.html
26.42
KB
-rw-r--r--
api-string-list.txt
6.84
KB
-rw-r--r--
api-tree-walking.html
23.17
KB
-rw-r--r--
api-tree-walking.txt
4.27
KB
-rw-r--r--
api-xdiff-interface.html
16.3
KB
-rw-r--r--
api-xdiff-interface.txt
139
B
-rw-r--r--
index-format.html
27.12
KB
-rw-r--r--
index-format.txt
6.29
KB
-rw-r--r--
pack-format.html
24.08
KB
-rw-r--r--
pack-format.txt
5.54
KB
-rw-r--r--
pack-heuristics.html
42.74
KB
-rw-r--r--
pack-heuristics.txt
17.77
KB
-rw-r--r--
pack-protocol.html
43.12
KB
-rw-r--r--
pack-protocol.txt
20.99
KB
-rw-r--r--
protocol-capabilities.html
25.41
KB
-rw-r--r--
protocol-capabilities.txt
7.09
KB
-rw-r--r--
protocol-common.html
20.08
KB
-rw-r--r--
protocol-common.txt
2.7
KB
-rw-r--r--
racy-git.html
26.85
KB
-rw-r--r--
racy-git.txt
8.63
KB
-rw-r--r--
send-pack-pipeline.html
18.73
KB
-rw-r--r--
send-pack-pipeline.txt
1.92
KB
-rw-r--r--
shallow.html
18.86
KB
-rw-r--r--
shallow.txt
2.3
KB
-rw-r--r--
trivial-merge.html
21.62
KB
-rw-r--r--
trivial-merge.txt
4.16
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : api-lockfile.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> <meta name="generator" content="AsciiDoc 8.6.8" /> <title>lockfile API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ /* Default font. */ body { font-family: Georgia,serif; } /* Title font. */ h1, h2, h3, h4, h5, h6, div.title, caption.title, thead, p.table.header, #toctitle, #author, #revnumber, #revdate, #revremark, #footer { font-family: Arial,Helvetica,sans-serif; } body { margin: 1em 5% 1em 5%; } a { color: blue; text-decoration: underline; } a:visited { color: fuchsia; } em { font-style: italic; color: navy; } strong { font-weight: bold; color: #083194; } h1, h2, h3, h4, h5, h6 { color: #527bbd; margin-top: 1.2em; margin-bottom: 0.5em; line-height: 1.3; } h1, h2, h3 { border-bottom: 2px solid silver; } h2 { padding-top: 0.5em; } h3 { float: left; } h3 + * { clear: left; } h5 { font-size: 1.0em; } div.sectionbody { margin-left: 0; } hr { border: 1px solid silver; } p { margin-top: 0.5em; margin-bottom: 0.5em; } ul, ol, li > p { margin-top: 0; } ul > li { color: #aaa; } ul > li > * { color: black; } .monospaced, code, pre { font-family: "Courier New", Courier, monospace; font-size: inherit; color: navy; padding: 0; margin: 0; } #author { color: #527bbd; font-weight: bold; font-size: 1.1em; } #email { } #revnumber, #revdate, #revremark { } #footer { font-size: small; border-top: 2px solid silver; padding-top: 0.5em; margin-top: 4.0em; } #footer-text { float: left; padding-bottom: 0.5em; } #footer-badges { float: right; padding-bottom: 0.5em; } #preamble { margin-top: 1.5em; margin-bottom: 1.5em; } div.imageblock, div.exampleblock, div.verseblock, div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, div.admonitionblock { margin-top: 1.0em; margin-bottom: 1.5em; } div.admonitionblock { margin-top: 2.0em; margin-bottom: 2.0em; margin-right: 10%; color: #606060; } div.content { /* Block element content. */ padding: 0; } /* Block element titles. */ div.title, caption.title { color: #527bbd; font-weight: bold; text-align: left; margin-top: 1.0em; margin-bottom: 0.5em; } div.title + * { margin-top: 0; } td div.title:first-child { margin-top: 0.0em; } div.content div.title:first-child { margin-top: 0.0em; } div.content + div.title { margin-top: 0.0em; } div.sidebarblock > div.content { background: #ffffee; border: 1px solid #dddddd; border-left: 4px solid #f0f0f0; padding: 0.5em; } div.listingblock > div.content { border: 1px solid #dddddd; border-left: 5px solid #f0f0f0; background: #f8f8f8; padding: 0.5em; } div.quoteblock, div.verseblock { padding-left: 1.0em; margin-left: 1.0em; margin-right: 10%; border-left: 5px solid #f0f0f0; color: #888; } div.quoteblock > div.attribution { padding-top: 0.5em; text-align: right; } div.verseblock > pre.content { font-family: inherit; font-size: inherit; } div.verseblock > div.attribution { padding-top: 0.75em; text-align: left; } /* DEPRECATED: Pre version 8.2.7 verse style literal block. */ div.verseblock + div.attribution { text-align: left; } div.admonitionblock .icon { vertical-align: top; font-size: 1.1em; font-weight: bold; text-decoration: underline; color: #527bbd; padding-right: 0.5em; } div.admonitionblock td.content { padding-left: 0.5em; border-left: 3px solid #dddddd; } div.exampleblock > div.content { border-left: 3px solid #dddddd; padding-left: 0.5em; } div.imageblock div.content { padding-left: 0; } span.image img { border-style: none; } a.image:visited { color: white; } dl { margin-top: 0.8em; margin-bottom: 0.8em; } dt { margin-top: 0.5em; margin-bottom: 0; font-style: normal; color: navy; } dd > *:first-child { margin-top: 0.1em; } ul, ol { list-style-position: outside; } ol.arabic { list-style-type: decimal; } ol.loweralpha { list-style-type: lower-alpha; } ol.upperalpha { list-style-type: upper-alpha; } ol.lowerroman { list-style-type: lower-roman; } ol.upperroman { list-style-type: upper-roman; } div.compact ul, div.compact ol, div.compact p, div.compact p, div.compact div, div.compact div { margin-top: 0.1em; margin-bottom: 0.1em; } tfoot { font-weight: bold; } td > div.verse { white-space: pre; } div.hdlist { margin-top: 0.8em; margin-bottom: 0.8em; } div.hdlist tr { padding-bottom: 15px; } dt.hdlist1.strong, td.hdlist1.strong { font-weight: bold; } td.hdlist1 { vertical-align: top; font-style: normal; padding-right: 0.8em; color: navy; } td.hdlist2 { vertical-align: top; } div.hdlist.compact tr { margin: 0; padding-bottom: 0; } .comment { background: yellow; } .footnote, .footnoteref { font-size: 0.8em; } span.footnote, span.footnoteref { vertical-align: super; } #footnotes { margin: 20px 0 20px 0; padding: 7px 0 0 0; } #footnotes div.footnote { margin: 0 0 5px 0; } #footnotes hr { border: none; border-top: 1px solid silver; height: 1px; text-align: left; margin-left: 0; width: 20%; min-width: 100px; } div.colist td { padding-right: 0.5em; padding-bottom: 0.3em; vertical-align: top; } div.colist td img { margin-top: 0.3em; } @media print { #footer-badges { display: none; } } #toc { margin-bottom: 2.5em; } #toctitle { color: #527bbd; font-size: 1.1em; font-weight: bold; margin-top: 1.0em; margin-bottom: 0.1em; } div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } div.toclevel2 { margin-left: 2em; font-size: 0.9em; } div.toclevel3 { margin-left: 4em; font-size: 0.9em; } div.toclevel4 { margin-left: 6em; font-size: 0.9em; } span.aqua { color: aqua; } span.black { color: black; } span.blue { color: blue; } span.fuchsia { color: fuchsia; } span.gray { color: gray; } span.green { color: green; } span.lime { color: lime; } span.maroon { color: maroon; } span.navy { color: navy; } span.olive { color: olive; } span.purple { color: purple; } span.red { color: red; } span.silver { color: silver; } span.teal { color: teal; } span.white { color: white; } span.yellow { color: yellow; } span.aqua-background { background: aqua; } span.black-background { background: black; } span.blue-background { background: blue; } span.fuchsia-background { background: fuchsia; } span.gray-background { background: gray; } span.green-background { background: green; } span.lime-background { background: lime; } span.maroon-background { background: maroon; } span.navy-background { background: navy; } span.olive-background { background: olive; } span.purple-background { background: purple; } span.red-background { background: red; } span.silver-background { background: silver; } span.teal-background { background: teal; } span.white-background { background: white; } span.yellow-background { background: yellow; } span.big { font-size: 2em; } span.small { font-size: 0.6em; } span.underline { text-decoration: underline; } span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } div.unbreakable { page-break-inside: avoid; } /* * xhtml11 specific * * */ div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; } div.tableblock > table { border: 3px solid #527bbd; } thead, p.table.header { font-weight: bold; color: #527bbd; } p.table { margin-top: 0; } /* Because the table frame attribute is overriden by CSS in most browsers. */ div.tableblock > table[frame="void"] { border-style: none; } div.tableblock > table[frame="hsides"] { border-left-style: none; border-right-style: none; } div.tableblock > table[frame="vsides"] { border-top-style: none; border-bottom-style: none; } /* * html5 specific * * */ table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; } thead, p.tableblock.header { font-weight: bold; color: #527bbd; } p.tableblock { margin-top: 0; } table.tableblock { border-width: 3px; border-spacing: 0px; border-style: solid; border-color: #527bbd; border-collapse: collapse; } th.tableblock, td.tableblock { border-width: 1px; padding: 4px; border-style: solid; border-color: #527bbd; } table.tableblock.frame-topbot { border-left-style: hidden; border-right-style: hidden; } table.tableblock.frame-sides { border-top-style: hidden; border-bottom-style: hidden; } table.tableblock.frame-none { border-style: hidden; } th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; } th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; } th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; } th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; } th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; } th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; } /* * manpage specific * * */ body.manpage h1 { padding-top: 0.5em; padding-bottom: 0.5em; border-top: 2px solid silver; border-bottom: 2px solid silver; } body.manpage h2 { border-style: none; } body.manpage div.sectionbody { margin-left: 3em; } @media print { body.manpage div#toc { display: none; } } </style> <script type="text/javascript"> /*<![CDATA[*/ var asciidoc = { // Namespace. ///////////////////////////////////////////////////////////////////// // Table Of Contents generator ///////////////////////////////////////////////////////////////////// /* Author: Mihai Bazon, September 2002 * http://students.infoiasi.ro/~mishoo * * Table Of Content generator * Version: 0.4 * * Feel free to use this script under the terms of the GNU General Public * License, as long as you do not remove or alter this notice. */ /* modified by Troy D. Hanson, September 2006. License: GPL */ /* modified by Stuart Rackham, 2006, 2009. License: GPL */ // toclevels = 1..4. toc: function (toclevels) { function getText(el) { var text = ""; for (var i = el.firstChild; i != null; i = i.nextSibling) { if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants. text += i.data; else if (i.firstChild != null) text += getText(i); } return text; } function TocEntry(el, text, toclevel) { this.element = el; this.text = text; this.toclevel = toclevel; } function tocEntries(el, toclevels) { var result = new Array; var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). var iterate = function (el) { for (var i = el.firstChild; i != null; i = i.nextSibling) { if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { var mo = re.exec(i.tagName); if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") { result[result.length] = new TocEntry(i, getText(i), mo[1]-1); } iterate(i); } } } iterate(el); return result; } var toc = document.getElementById("toc"); if (!toc) { return; } // Delete existing TOC entries in case we're reloading the TOC. var tocEntriesToRemove = []; var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); } for (i = 0; i < tocEntriesToRemove.length; i++) { toc.removeChild(tocEntriesToRemove[i]); } // Rebuild TOC entries. var entries = tocEntries(document.getElementById("content"), toclevels); for (var i = 0; i < entries.length; ++i) { var entry = entries[i]; if (entry.element.id == "") entry.element.id = "_toc_" + i; var a = document.createElement("a"); a.href = "#" + entry.element.id; a.appendChild(document.createTextNode(entry.text)); var div = document.createElement("div"); div.appendChild(a); div.className = "toclevel" + entry.toclevel; toc.appendChild(div); } if (entries.length == 0) toc.parentNode.removeChild(toc); }, ///////////////////////////////////////////////////////////////////// // Footnotes generator ///////////////////////////////////////////////////////////////////// /* Based on footnote generation code from: * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html */ footnotes: function () { // Delete existing footnote entries in case we're reloading the footnodes. var i; var noteholder = document.getElementById("footnotes"); if (!noteholder) { return; } var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { noteholder.removeChild(entriesToRemove[i]); } // Rebuild footnote entries. var cont = document.getElementById("content"); var spans = cont.getElementsByTagName("span"); var refs = {}; var n = 0; for (i=0; i<spans.length; i++) { if (spans[i].className == "footnote") { n++; var note = spans[i].getAttribute("data-note"); if (!note) { // Use [\s\S] in place of . so multi-line matches work. // Because JavaScript has no s (dotall) regex flag. note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1]; spans[i].innerHTML = "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n + "' title='View footnote' class='footnote'>" + n + "</a>]"; spans[i].setAttribute("data-note", note); } noteholder.innerHTML += "<div class='footnote' id='_footnote_" + n + "'>" + "<a href='#_footnoteref_" + n + "' title='Return to text'>" + n + "</a>. " + note + "</div>"; var id =spans[i].getAttribute("id"); if (id != null) refs["#"+id] = n; } } if (n == 0) noteholder.parentNode.removeChild(noteholder); else { // Process footnoterefs. for (i=0; i<spans.length; i++) { if (spans[i].className == "footnoteref") { var href = spans[i].getElementsByTagName("a")[0].getAttribute("href"); href = href.match(/#.*/)[0]; // Because IE return full URL. n = refs[href]; spans[i].innerHTML = "[<a href='#_footnote_" + n + "' title='View footnote' class='footnote'>" + n + "</a>]"; } } } }, install: function(toclevels) { var timerId; function reinstall() { asciidoc.footnotes(); if (toclevels) { asciidoc.toc(toclevels); } } function reinstallAndRemoveTimer() { clearInterval(timerId); reinstall(); } timerId = setInterval(reinstall, 500); if (document.addEventListener) document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false); else window.onload = reinstallAndRemoveTimer; } } asciidoc.install(); /*]]>*/ </script> </head> <body class="article"> <div id="header"> <h1>lockfile API</h1> </div> <div id="content"> <div id="preamble"> <div class="sectionbody"> <div class="paragraph"><p>The lockfile API serves two purposes:</p></div> <div class="ulist"><ul> <li> <p> Mutual exclusion. When we write out a new index file, first we create a new file <code>$GIT_DIR/index.lock</code>, write the new contents into it, and rename it to the final destination <code>$GIT_DIR/index</code>. We try to create the <code>$GIT_DIR/index.lock</code> file with O_EXCL so that we can notice and fail when somebody else is already trying to update the index file. </p> </li> <li> <p> Automatic cruft removal. After we create the "lock" file, we may decide to <code>die()</code>, and we would want to make sure that we remove the file that has not been committed to its final destination. This is done by remembering the lockfiles we created in a linked list and cleaning them up from an <code>atexit(3)</code> handler. Outstanding lockfiles are also removed when the program dies on a signal. </p> </li> </ul></div> </div> </div> <div class="sect1"> <h2 id="_the_functions">The functions</h2> <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> hold_lock_file_for_update </dt> <dd> <p> Take a pointer to <code>struct lock_file</code>, the filename of the final destination (e.g. <code>$GIT_DIR/index</code>) and a flag <code>die_on_error</code>. Attempt to create a lockfile for the destination and return the file descriptor for writing to the file. If <code>die_on_error</code> flag is true, it dies if a lock is already taken for the file; otherwise it returns a negative integer to the caller on failure. </p> </dd> <dt class="hdlist1"> commit_lock_file </dt> <dd> <p> Take a pointer to the <code>struct lock_file</code> initialized with an earlier call to <code>hold_lock_file_for_update()</code>, close the file descriptor and rename the lockfile to its final destination. Returns 0 upon success, a negative value on failure to close(2) or rename(2). </p> </dd> <dt class="hdlist1"> rollback_lock_file </dt> <dd> <p> Take a pointer to the <code>struct lock_file</code> initialized with an earlier call to <code>hold_lock_file_for_update()</code>, close the file descriptor and remove the lockfile. </p> </dd> <dt class="hdlist1"> close_lock_file </dt> <dd> <p> Take a pointer to the <code>struct lock_file</code> initialized with an earlier call to <code>hold_lock_file_for_update()</code>, and close the file descriptor. Returns 0 upon success, a negative value on failure to close(2). </p> </dd> </dl></div> <div class="paragraph"><p>Because the structure is used in an <code>atexit(3)</code> handler, its storage has to stay throughout the life of the program. It cannot be an auto variable allocated on the stack.</p></div> <div class="paragraph"><p>Call <code>commit_lock_file()</code> or <code>rollback_lock_file()</code> when you are done writing to the file descriptor. If you do not call either and simply <code>exit(3)</code> from the program, an <code>atexit(3)</code> handler will close and remove the lockfile.</p></div> <div class="paragraph"><p>If you need to close the file descriptor you obtained from <code>hold_lock_file_for_update</code> function yourself, do so by calling <code>close_lock_file()</code>. You should never call <code>close(2)</code> yourself! Otherwise the <code>struct lock_file</code> structure still remembers that the file descriptor needs to be closed, and a later call to <code>commit_lock_file()</code> or <code>rollback_lock_file()</code> will result in duplicate calls to <code>close(2)</code>. Worse yet, if you <code>close(2)</code>, open another file descriptor for completely different purpose, and then call <code>commit_lock_file()</code> or <code>rollback_lock_file()</code>, they may close that unrelated file descriptor.</p></div> </div> </div> </div> <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> Last updated 2013-06-10 20:01:55 UTC </div> </div> </body> </html>
Close