是否有可能在没有git clone的情况下获取远程git repo的提交日志/消息?
我正在使用的git repo非常庞大,即使我使用--depth = 1运行git clone仍然需要一段时间才能克隆它.
我在找这样的东西,
git remote-log.
我也查看了git -ls-remote,它只提供SHA和Heads /标签.我有兴趣获得最后2个提交标题,提交用户并提交SHA?
谁知道怎么做?
因此,我在 Atlassian-Stash 中为接收后事件编写了一个 bash 脚本。在此脚本中,提交后,它会创建一个 codecollaborator 代码审查。要创建代码审查,需要提交标题、提交用户和 git SHA 以进行任何更改,并将更改上传到代码审查。为了获取这些信息,我将目录克隆到 --深度 = 1 (即使没有 --深度 = 1)并使用 git log (选项)。
我看到的问题是,如果我手动运行脚本,它就可以正常工作。但是,如果它在提交后运行,则在克隆目录后会出错,表明它不是 git 目录。如果我在脚本退出后 cd 进入该目录,我就可以运行 git log (和其他 git 命令)。
我尝试解决的问题是 1. 权限问题(以 root 身份运行),所以我没有看到任何权限问题。2. 使用 bash -xv 进行故障排除,直到此时一切看起来都很好。3.我还用$?4.我尝试将.git移至git-backup,等待3秒并将其移回来,仍然是同样的问题。5. 我运行 ls -ltra 以确保它具有所有文件和 .git 目录。
现在,我别无选择。以前有人遇到过这种问题吗?
有人知道我哪里可能做错了什么或遗漏了什么吗?
我尝试尽可能具有描述性,如果问题没有意义或需要示例脚本,请告诉我。
添加下面的脚本及其错误输出。
#!/bin/bash -xv
CCollabExe='/usr/local/bin/ccollab'
CCollabUrl='--url http://***:8080'
CCollabUser='--user ******'
CCollabPassword='--password ******'
CCollabConnection="${CCollabExe} ${CCollabUrl} ${CCollabUser} ${CCollabPassword}"
CCollabStuff='/home/stash/repositories/tmp'
CloneDir="${CCollabStuff}/ClonnedDir"
StashUser='******'
StashPass='******'
RepoURLlinkGit="http://${StashUser}:${StashPass}@******:7990/scm/t/test1.git"
unset SSH_ASKPASS
# Test function to check if a varibale is empty
CheckIfVarEmpty …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用python-novaclient从openstack中的可启动卷创建实例。
我正在采取的步骤如下:
步骤1:创建一个具有100GB映像的“ Centos”卷。步骤2:使用在步骤1中创建的卷创建实例。
但是,我必须做错了某些事情,或者丢失了一些无法完成任务的信息。
这是我在python shell中的命令。
import time, getpass
from cinderclient import client
from novaclient.client import Client
project_name = 'project'
region_name = 'region'
keystone_link = 'https://keystone.net:5000/v2.0'
network_zone = "Public"
key_name = 'key_pair'
user = 'user'
pswd = getpass.getpass('Password: ')
# create a connection
cinder = client.Client('1', user, pswd, project_name, keystone_link, region_name = region_name)
# get the volume id that we will attach
print(cinder.volumes.list())
[<Volume: 1d36203e-b90d-458f-99db-8690148b9600>, <Volume: d734f5fc-87f2-41dd-887e-c586bf76d116>]
vol1 = cinder.volumes.list()[1]
vol1.id
block_device_mapping = {'device_name': vol1.id, 'mapping': '/dev/vda'}
### +++++++++++++++++++++++++++++++++++++++++++++++++++++ …Run Code Online (Sandbox Code Playgroud) 我有一个Django模板,其中显示了从数据库接收的多个值,并将其传递给模板,如下所示:
在views.py中
def test1(requests):
requests.get...
requests.get...
requests.get...
someQuery = "select id from table;"
executeQ(someQuery)
someQuery = "select id from table;"
executeQ(someQuery)
someQuery = "select id from table;"
executeQ(someQuery)
context = Data1, Data2, Data3
return render_to_response('test1/index.html', context)
Run Code Online (Sandbox Code Playgroud)
在template / test1 / index.html中
<html>
......
<table>
<th> header1 </th>
<th> header2 </th>
<th> header3 </th>
{% for row in context %}
<td> row.1 </td>
<td> row.2 </td>
<td> row.3 </td>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
现在,我要通过Ajax更新那些row.1,row.2,row.3,而不必每次都重新分配页面。数据来自数据库。那么我在哪里以及如何放置一些Ajax()来实现Django?